Salve,
Sto creando due script, uno che mi cripta e aggiunge una stringa, ogni stringa finisce con un <br />, ad un file, e l'altro che mi legge il file decriptando tutte le stringe aggiunte.
Lo script per criptare funziona correttamente almeno credo, ed è questo:
Codice PHP:
function str_crypt($data, $key)
{
if(strlen($key)<32) $key = md5($key);
$ld = strlen($data);
$lk = strlen($key);
for($i=0, $crdata=""; $i<$ld; $i++){
$crdata .= sprintf("%02X",(ord($data[$i]))^(ord($key[$i%$lk])));
}
return $crdata;
}
$f = fopen("file.txt", "a");
fwrite($f, str_crypt("frase_da_criptare", "chiave");
fclose($f);
Mentre lo script per decriptare ha questo contenuto:
Codice PHP:
function str_decrypt($cdata, $key)
{
if(strlen($key)<32) $key = md5($key);
$ld = strlen($cdata);
$lk = strlen($key);
for($i=0, $data=""; $i<$ld; $i+=2){
$data .= chr((hexdec(substr($cdata, $i, 2)))^(ord($key[($i>>1)%$lk])));
}
return $data;
}
$file = "percorso_relativo_file";
$chiave = "chiave";
echo str_decrypt($file, $chiave);
Ma non funziona come vorrei, cioè, quando il file contiene solo una riga mi viene decriptato correttamente, ma quando ne contiene più di una mi decripta solo la prima riga del file, ovvero, non è che l'altre righe non me le decripta, ma me le decripta restituendomi altri caratteri diversi da quelli presente nella stringa criptata, sembra, se non erro, che me le decripta con un'altra chiave.
Non so se mi sono spiegato bene, ma saprete aiutarmi?