Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/09/2011, 19:20
Avatar de cristian_cena
cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 17 años, 3 meses
Puntos: 269
problemas con codificación de caracteres y mcrypt

Hola compañeros.

Resulta que estoy encriptando datos con mcrypt pero no puedo almacenar estos datos en una base de datos mysql, la cual posee cotejamiento utf8_general_ci

Probé de todo ya, de poner los archivos .php en ansi, en utf8, en utf8-sin-bom, etc. Pero no hay caso, se almacenan algunos caracteres solamente, e incluso quedan campos vacíos.

Tengo montado esto en un desarrollo con mvc, pero este código de ejemplo puede ser útil para ilustrar el caso:
Código PHP:
<?php
$clave 
= "clave";
$texto = "Texto base para encriptar";

echo 
"<b>Texto Original:</b> " . $texto . "\n<p>";

function 
encripta($key, $text){
    
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
    
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    
    
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text,MCRYPT_MODE_ECB, $iv);
    return 
$crypttext;
}
function 
desencripta($key,$crypttext){
    
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
    
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

    
$decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $crypttext,MCRYPT_MODE_ECB, $iv);
    return 
$decrypttext;
}

$texto_encriptado = encripta($clave, $texto);
echo 
"<b>Encrypted Text: </b>" . $texto_encriptado . "<br />";

echo 
"<b>UnEncrypted Text: </b>" . desencripta($clave, $texto_encriptado);
?>
¿Como debo tratar la codificacion de caracteres para este caso, les ha pasado alguna vez?
Les agradezco de antemano su ayuda.