PHP script di sicuro accesso - hash md5 non corrisponde l'hash ho scritto al database in uno script precedente?
-
26-09-2019 - |
Domanda
Sto cercando di mettere insieme uno script di accesso in PHP come un progetto di apprendimento.
Questo è il codice per la mia scrittura database quando l'utente si registra. Entrambi questi valori sono scritti nel database.
$this->salt = md5(uniqid());
$this->password = md5($password.$salt);
Al momento del login, la seguente funzione è sparato.
function challengeLogin($submittedPassword, $publicSalt, $storedPassword){
if(md5($submittedPassword.$publicSalt) == $actualPassword){
return 0;
}else{
return 1;
};
}
Purtroppo, sul potenziamento attraverso il mio codice, i due valori non sono mai eguagliato. Qualcuno può aiutarmi a capire perché?
Soluzione
Credo che il problema nel codice è che la variabile $salt
non è definito, quindi è vuota. Si dovrebbe usare $this->salt
Cambia
$this->password = md5($password.$salt);
a
$this->password = md5($password.$this->salt);
Altri suggerimenti
Confrontare i valori grezzi prima che venga generato un hash con alcune dichiarazioni di eco di base. O il sale è sbagliato, la password è sbagliata, o l'hash in qualche modo ottenuto avvitato.