que utilice la siguiente función para descifrar los datos en mi servidor:Problema con la función de PHP mcrypt
function decrypt($key, $text) {
return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($text), MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)));
}
He leído mucho acerca de no usar BCE sin embargo (y sé que está en desuso por lo que quería cambiar a CBC. simplemente cambiando el modo a:..?
function decrypt($key, $text) {
return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($text), MCRYPT_MODE_CBC, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC), MCRYPT_RAND)));
}
no funciona Sin embargo, no se generan errores, pero los datos devueltos todavía se cifran
¿Cuál falto
código actualizado - aún con errores:
$key = "hello";
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), MCRYPT_DEV_RANDOM);
function encrypt($key, $text) {
return trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $text, MCRYPT_MODE_CBC, $iv)));
}
function decrypt($key, $text) {
return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, base64_decode($text), MCRYPT_MODE_CBC, $iv));
}
$text = 12345;
echo "Plain Number : " . $text . "<br><br>";
$encrypted = encrypt($key, $text);
echo "AES Number : " . $encrypted . "<br><br>";
echo "Plain Number : ". decrypt($key, $encrypted) . "<br><br>";
esto debería funcionar - pero devuelve el error:
de bloque en
de bloque en> Advertencia: MCRYPT_ENCRYPT()
[function.mcrypt-encrypt]: The IV parameter must be as long as the blocksize inblocksize in
tamaño de bloques en
¿Los datos de devolución son los mismos que los que ingresó? Si es así, algo anda mal con la función de descifrado. De lo contrario, está funcionando normalmente, y acaba de utilizar la clave equivocada/IV, y recuperó la basura. –
@Marc B - Sí, de hecho estoy ejecutando el cifrado y el descifrado en la misma página, incluso para asegurarme de que la información sea buena, pero obtengo errores. Voy a tratar de ver que algunas de las sugerencias a continuación marcan la diferencia. – JM4