ciao a tutti, sto implementando un sistema di autenticazione utente nel mio sito
per fare questo, nel momento del login, confronto la password immessa dall'utente con quella presente nel database.
La password nel database deriva da una precedente cifratura con RIJNDAEL_128,
nel mio caso, per esempio: cwQVXstAXP49/HdspymlvA==
La decrittazione con mycrypt_decrypt dovrebbe cos� restituire la password in chiaro, ovvero 'segretissimo'
invece mi escono cose strane e sempre diverse come �3G��_W+U#��k[x, ����.Rb.•�} /-, >�M�@�_�82 eccetera
ecco il codice per la decrittazione:
Codice PHP:
//prima recupero la password nel database, come elemento dell'array $record
$data = $record['password'];
//imposto le variabili
$cipher = MCRYPT_RIJNDAEL_128;
$mode = MCRYPT_MODE_CBC;
$key = sha1('secretKey', true);
$ivs = mcrypt_get_iv_size($cipher, $mode);
$iv = mcrypt_create_iv($ivs);
//dopodich� procedo alla decrittazione
$data = base64_decode($data);
$stored_password = mcrypt_decrypt($cipher, $key, $data, $mode, $iv);
echo 'Decrypted data: ' . $stored_password . '<br>';
come dicevo, dalla decrittazione ottengo solo quelle strane stringhe di cui sopra.
Sapreste suggerirmi qualcosa voi?????? GRAZIE!!
PS:
La password cifrata era stata invece cos� ottenuta all'atto dell'iscrizione dell'utente:
Codice PHP:
//imposto la password
$password = 'segretissimo';
//imposto le variabili
$cipher = MCRYPT_RIJNDAEL_128;
$mode = MCRYPT_MODE_CBC;
$key = sha1('secretKey', true);
$ivs = mcrypt_get_iv_size($cipher, $mode);
$iv = mcrypt_create_iv($ivs);
//dopodich� procedo alla crittazione
$data = mcrypt_encrypt($cipher, $key, $password, $mode, $iv);
$data = base64_encode($data);