Hola!
Ho un problema con mcrypt. Premetto che sto usando mcrypt_crypt e _decrypt, senza dover fare open e close.
Ho fatto questo
Il problema e' questo:codice:file crittatura.php <? $key = "Chiave assai sicura"; $iv_size = mcrypt_get_iv_size(MCRYPT_XTEA, MCRYPT_MODE_CFB); $iv = mcrypt_create_iv($iv_size, MCRYPT_DEV_RANDOM); $ksize = mcrypt_get_key_size('xtea', 'cfb'); $key = substr(md5($key), 0, $ksize); function Rev_Crypt($text) { global $key, $iv; return mcrypt_encrypt(MCRYPT_XTEA, $key, $text, MCRYPT_MODE_CFB, $iv); } function Rev_Decrypt($enc) { global $key, $iv; return mcrypt_decrypt(MCRYPT_XTEA, $key, $enc, MCRYPT_MODE_CFB, $iv); } ?>
Nella pagina A faccio questo:
e noto che $tct e $unc sono uguali, e fin qui giustocodice:include("crittatura.php"); $txt = "Testo da crittare"; $cri = Rev_Crypt($txt); $unc = Rev_Decrypt($cri);
Poi metto $cri in un database.
Nella pagina B faccio
ma $unc della pagina B e' una serie di cose senza sensocodice:include("crittatura.php"); $cont = Preleva_da_database(); $unc = Rev_Decrypt($cont);
Facendo due verifiche vi garantisco che:
1. il database immagazzina la stringa crittata correttamente, e la restituisce correttamente
2. La chiave $key nella pagina A e B coincidono, ma non e' cosi' per $iv, suppongo sia normale
3. La stringa decrittata $unc della pagina B e' sempre diversa
Ho provato anche il metodo "open-close" (e tutta la pappardella che c'e' attorno, come da manuale), ma il risultato e' lo stesso: incomprensibile.
Dove sbaglio? :master:
Grazie




Rispondi quotando