Hola a todos, hace algunas horas subí un tema relacionado con funciones de encriptación. El código no me funcionaba. He decido cambiar el código y ahora la encriptación funciona bien, pero no la desencriptación.
El código es el siguiente:
Código PHP:
<?php
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
function encripta($text, $iv){
$key = "Clave que realiza el cifrado";
echo "CONST: ".MCRYPT_RIJNDAEL_256."<br>";
echo "key: ".$key."<br>";
echo "TEXTO E: ".$text."<br>";
echo "CONST2: ".MCRYPT_MODE_ECB."<br>";
echo "IV: ".$iv."<br>";
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
$descrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $crypttext, MCRYPT_MODE_ECB, $iv);
echo "DESENCRIPTACION dentro de la funcion encriptacion: ".trim ($descrypttext)."<br>";
return $crypttext;
}
function desencripta($text, $iv){
$key = "Clave que realiza el descifrado";
echo "CONST: ".MCRYPT_RIJNDAEL_256."<br>";
echo "key: ".$key."<br>";
echo "TEXTO D: ".$text."<br>";
echo "CONST2: ".MCRYPT_MODE_ECB."<br>";
echo "IV: ".$iv."<br>";
$descrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
echo "DESENCRIPTACION dentro de la funcion desencriptacion: ".trim ($descrypttext)."<br>";
return $descrypttext;
}
$cadenaenc = encripta("a1174b", $iv);
echo "<br>ENCRIPTACION: ".$cadenaenc."<br>";
echo "<br><br>";
$cadenadesenc = desencripta($cadenaenc, $iv);
echo "<br>DESENCRIPTACION: ".$cadenadesenc."<br>";
?>
Los parámetros de ambas funciones son exactamente los mismos.
He probado a desencriptar en la primera funcion
encripta() y me lo hace bien, el problema es cuando hago la desencriptación con la función
desencripta(), ya que no me devuelve la cadena original, como debe ocurrir.
Llevo dándole vueltas alñ código un rato pero no me doy cuenta de lo que estoyhaciendo mal. Supongo que debe ser una tontería.
Alguna sugerencia.
Saludos a todos.