Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/09/2008, 13:59
Avatar de chitoso
chitoso
 
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años
Puntos: 5
Problema de caracteres en cifrado/descifrado de datos

Hola, cree una pequeña clase que cifra/descifra datos utilizando el algoritmo "Rijndael" con claves de 256 bits.

Aca un extracto del metodo para encriptar:

Código PHP:
static public function Encrypt($pass) {
            
$iv_size mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256MCRYPT_MODE_ECB); //get vector size on ECB mode
            
$iv mcrypt_create_iv($iv_sizeMCRYPT_RAND); //Creating the vector
            
$cryptedpass mcrypt_encrypt (MCRYPT_RIJNDAEL_256self::$encryptionKey$passMCRYPT_MODE_ECB$iv); //Encrypting using MCRYPT_RIJNDAEL_256 algorithm
            
return $cryptedpass;
        } 
En mi aplicación donde lo uso todo funciona perfecto. los datos van y vienen y se codifican/decodifican a la perfección.

Ahora cree una página aparte para poder ingresar un dato cifrado en un textbox y que me diga el string original. Es decir, consulto la base de datos, copio el dato cifrado y obtengo el original.

Lo único que hace es tener un textbox que captura la información y la codifica/decodifica:

Código PHP:
//Descifrando //
            
if(isset($_POST['descifrar'])){
                
$output Security::Decrypt($text);
                echo 
$output;
            } 
Cuando codifico la información, coincide con lo que veo en la base de datos, donde esta toda la información cifrada. Pero cuando copio de la base y trato de descifrar, no da bien. Tira caracteres como p�<�,m�כ�gjF�$���ɷ��, que obviamente no coinciden con el string original.

Me imagino que tiene que ver con la codificación del form y la pagina, pero he probado todo y no lo puedo hacer coincidir. Estoy usando utf-8 en la base y en las páginas.
__________________
Pasión por la Música