Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/01/2012, 09:12
Avatar de junihh
junihh
 
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 22 años, 8 meses
Puntos: 7
Problemas al leer un JSON desencriptado

Hola señores

Estoy trabajando un proyecto que me obliga a guardar un cookie con datos delicados del usuario, por lo que preferí encriptarlos. Lo siguiente es el método de encriptación que uso:

Código PHP:
function encryptStr($str)
{
    
$cph = MCRYPT_RIJNDAEL_256;
    
$mdo = MCRYPT_MODE_ECB;
    
$key = 'ErEVy10BDg';
    
    return 
mcrypt_encrypt($cph, $key, $str, $mdo, mcrypt_create_iv(mcrypt_get_iv_size($cif, $mdo),MCRYPT_RAND) );
}

function 
decryptStr($str)
{
    
$cph = MCRYPT_RIJNDAEL_256;
    
$mdo = MCRYPT_MODE_ECB;
    
$key = 'ErEVy10BDg';
    
    return 
mcrypt_decrypt($cph, $key, $str, $mdo, mcrypt_create_iv(mcrypt_get_iv_size($cif, $mdo),MCRYPT_RAND) );
} 
Y esto la forma como lo aplico:

Código PHP:
$jsn = '{ "status":"respuesta_objeto", "nombre":"Junior", "apellido":"Hernandez", "email":"[email protected]" }';
$jsnEncrypt = encryptStr($jsn);
$jsnDecrypt = decryptStr($jsnEncrypt);
$jsnDecode = json_decode($jsnDecrypt); 
Entonces al probar:

Código PHP:
var_dump( json_decode($jsn) );

// DEVUELVE: object(stdClass)#1 (4) { ["status"]=> string(16) "respuesta_objeto" ["nombre"]=> string(6) "Junior" ["apellido"]=> string(9) "Hernandez" ["email"]=> string(17) "[email protected]" } 
Código PHP:
var_dump( $jsnDecrypt );

// DEVUELVE: string(128) "{ "status":"respuesta_objeto", "nombre":"Junior", "apellido":"Hernandez", "email":"[email protected]" }" 
Pero al tratar de usar el json_decode:

Código PHP:
var_dump( $jsnDecode );

// DEVUELVE: NULL 
¿Cómo puedo hacer para que el json desencriptado pueda ser parseado por json_decode, o acaso no se puede y lo preferible es buscar otra alternativa?

Cualquier idea o enlace que me puedan facilitar se los voy a agradecer, porque es un problema que no contemplaba.
__________________
JuniHH
- Mi blog
- Mi portafolio

Última edición por junihh; 08/01/2012 a las 09:18