Ver Mensaje Individual
  #3 (permalink)  
Antiguo 31/03/2005, 09:38
mflores12
 
Fecha de Ingreso: julio-2001
Ubicación: León, Gto.
Mensajes: 119
Antigüedad: 22 años, 9 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 : : . .