
31/03/2005, 09:38
|
| | Fecha de Ingreso: julio-2001 Ubicación: León, Gto.
Mensajes: 119
Antigüedad: 23 años, 8 meses Puntos: 2 | |
Probe con dos formas para hacer la encriptacion/desencriptacion. Este es el codigo de la primera:
<?php
if(!extension_loaded('mcrypt')) dl('php_mcrypt.dll');
$texto = "este texto es muy secreto y lo voy a encriptar";
$key = "llave secreta";
$iv_size = mcrypt_get_iv_size(MCRYPT_XTEA, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$st_NumeroEncriptado = mcrypt_ecb(MCRYPT_BLOWFISH, $key, $texto, MCRYPT_ENCRYPT, $iv);
$st_CodificaNumero = urlencode($st_NumeroEncriptado);
$st_DecodificaNumero = urldecode($st_CodificaNumero);
$st_NumeroDesencriptado = mcrypt_ecb(MCRYPT_BLOWFISH, $key, $st_DecodificaNumero, MCRYPT_DECRYPT, $iv);
?>
Y este es el de la segunda:
<?php
if(!extension_loaded('mcrypt')) dl('php_mcrypt.dll');
$input = "este texto es muy secreto y lo voy a encriptar";
$key = "llave secreta";
# Abrimos el modulo del algoritmo y el modo a ser utilizado.
$td = mcrypt_module_open(MCRYPT_BLOWFISH, '', MCRYPT_MODE_CBC, '');
# Creamos el vector de inicializacion.
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
# Inicializa todos los buffers necesarios para la encriptacion.
mcrypt_generic_init($td, $key, $iv);
# Encriptamos los datos.
$encrypted_data = mcrypt_generic($td, $input);
$st_CodificaNumero = urlencode($encrypted_data);
# Desinicializa el modulo de encriptacion y limpia todos los buffers.
mcrypt_generic_deinit($td);
# Cierra el modulo mcrypt.
mcrypt_module_close($td);
$td = mcrypt_module_open(MCRYPT_BLOWFISH, '', MCRYPT_MODE_CBC, '');
mcrypt_generic_init($td, $key, $iv);
# Desencriptamos los datos.
$st_DecodificaNumero = urldecode($st_CodificaNumero);
$decrypted_data = mdecrypt_generic($td, $encrypted_data);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
?>
Lo extraño esque en una maquina con Windows XP funciona perfectamente y en una con Windows NT no. Por eso mi pregunta era que si tenia algo que ver la version del windows o la version del libmcrypt.dll, o si tengo que instalar otra cosa para hacer que funcione.
Segun lo que lei solo se tenian que hacer dos cosas para habilitar el modulo mcrypt:
1. Copiar el archivo "libmcrypt.dll" a la carpeta de system32 de windows.
2. Quitar el ";" de la linea ";extension=php_mcrypt.dll" del archivo php.ini (aunque en mi caso lo que hice fue cargar el modulo dinamicamente, porque no tengo acceso al php.ini)
Eso es todo lo que hay que hacer...?
__________________ . . : : chunga : : . . |