Ho un errore veramente strano con la funzione di criptaggio e decriptaggio...
In pratica ho la necessita di criptare dei dati per poi decriptarli e utilizzarli.
Ma, in arrivo, i dati decriptati non riesco a utilizzarli.
Ho semplificato al massimo il programma per fare dei test, e il codice è questo
codice:
$key = "meakad82mdb2mndk9cKWqADr3ko7jw4z";
$vi = "93id832jdik4i20g";
$url = "p1=123&p2=456789&p3=112233445566778899";
echo "$url
";
$url_encr = mcrypt_encrypt(MCRYPT_RIJNDAEL_128,$key, $url, MCRYPT_MODE_CBC, $vi);
$url_base64 = base64_encode($url_encr);
$url_base64_en = rawurlencode($url_base64);
//echo "Url criptata: $url_base64_en
";
$l_urlencoded_base64_encrypted = $url_base64_en;
$l_urldecoded_base64_encrypted = rawurldecode($l_urlencoded_base64_encrypted);
$l_encrypted = base64_decode($l_urldecoded_base64_encrypted);
$l_decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128,$key, $l_encrypted, MCRYPT_MODE_CBC, $vi);
echo "$l_decrypted
";
if($url == $l_decrypted)
echo "OK";
else
echo "KO";
Il risultato è, quantomeno, inquietante:
codice:
p1=123&p2=456789&p3=112233445566778899
p1=123&p2=456789&p3=112233445566778899
KO
KO... ovvero le due stringhe NON sono uguali, nonostante visivamente lo sembrino. le sto provando tutte, ma non ne vengo a capo