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

Muchas gracias triby por la respuesta. La solución que encontré fue pasar la cadena encriptada a base64. De este modo se eliminan los caracteres raros y los campos varchar de la db utf8-general_ci la toman.

Comparto el código por si a alguien más le sirve:
Código PHP:
Ver original
  1. function encripta($key, $text){
  2.     $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
  3.     $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
  4.    
  5.     $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text,MCRYPT_MODE_ECB, $iv);
  6.  
  7.     $crypttext = base64_encode($crypttext);
  8.  
  9.     return $crypttext;
  10. }
  11. function desencripta($key, $crypttext){
  12.    
  13.     $crypttext = base64_decode($crypttext);
  14.     $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
  15.     $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
  16.  
  17.     $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $crypttext,MCRYPT_MODE_ECB, $iv);
  18.     return $decrypttext;
  19. }

Saludos.