Ho fatto un test: 3 pagine semplici, posto
pagina cri.php
pagina index.phpcodice:<? $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); } ?>
pagina read.phpcodice:<? include("cri.php"); $cri = Rev_Crypt("Questa e' Una stringa crittata asdasd"); $enc = base64_encode($cri); $f = fopen("prova.txt", "w"); fputs($f, $enc); fclose($f); echo "Stringa salvata: $enc (len ".strlen($enc).") \n"; echo "Stringa crittata: ".base64_decode($enc)."(len ".strlen(base64_decode($enc)).") \n"; echo "Stringa decrittata: ".Rev_Decrypt(base64_decode($enc))."(len ".strlen(Rev_Decrypt(base64_decode($enc))).") \n"; echo " Leggi \n"; ?>
teoricamente critta la stringa, la passa con base64, la salva su file.codice:<? include("cri.php"); $f = fopen("prova.txt", "r"); $enc = fgets($f); echo "Stringa salvata: $enc (len ".strlen($enc).") \n"; echo "Stringa crittata: ".base64_decode($enc)."(len ".strlen(base64_decode($enc)).") \n"; echo "Stringa decrittata: ".Rev_Decrypt(base64_decode($enc))."(len ".strlen(Rev_Decrypt(base64_decode($enc))).") \n"; fclose($f); ?>
Read la legge e fa il processo inverso
ma i risultati:
esecuzione di index.php
esecuzione di read.phpStringa salvata: Rs1baBsfvjfbZpEc/GWv/3wnuyFSWgq1jcbbAxs3FF8rNzCUKA== (len 52)
Stringa crittata: FÍ[h¾7Ûf‘üe¯ÿ|'»!RZ µÆÛ7_+70”((len 37)
Stringa decrittata: Questa e' Una stringa crittata asdasd(len 37)
Leggi
come si vede la prima parte della stringa e' decrittata in modo errato.Stringa salvata: Rs1baBsfvjfbZpEc/GWv/3wnuyFSWgq1jcbbAxs3FF8rNzCUKA== (len 52)
Stringa crittata: FÍ[h¾7Ûf‘üe¯ÿ|'»!RZ µÆÛ7_+70”((len 37)
Stringa decrittata: 9ð©†Iï!J' Una stringa crittata asdasd(len 37)
Non capisco cosa possa essere, vista la semplicita' dell'esempio.
Provate voi per favore?
Grazie
ciao




Rispondi quotando