Ver Mensaje Individual
  #4 (permalink)  
Antiguo 27/01/2011, 05:19
Avatar de aalleexx81
aalleexx81
 
Fecha de Ingreso: noviembre-2009
Mensajes: 153
Antigüedad: 14 años, 5 meses
Puntos: 0
Pregunta Fallo al desencriptar

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_256MCRYPT_MODE_ECB);
$iv mcrypt_create_iv($iv_sizeMCRYPT_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$textMCRYPT_MODE_ECB$iv);
    
$descrypttext =  mcrypt_decrypt(MCRYPT_RIJNDAEL_256$key$crypttextMCRYPT_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$textMCRYPT_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.