J'essaie de concocter un script de connexion en PHP en tant que projet d'apprentissage.Script d'ouverture de session sécurisée PHP - hachage md5 ne correspond pas au hachage que j'ai écrit dans la base de données dans un script précédent?
Il s'agit du code de ma base de données en écriture lorsque l'utilisateur s'enregistre. Ces deux valeurs sont écrites dans la base de données.
$this->salt = md5(uniqid());
$this->password = md5($password.$salt);
Lors de la connexion, la fonction suivante est déclenchée.
function challengeLogin($submittedPassword, $publicSalt, $storedPassword){
if(md5($submittedPassword.$publicSalt) == $actualPassword){
return 0;
}else{
return 1;
};
}
Malheureusement, en passant par mon code, les deux valeurs n'ont jamais été égales. Quelqu'un peut-il m'aider à comprendre pourquoi?
$ publicSalt est le sel de la base de données de l'utilisateur, correct? Celui généré par '$ this-> salt = md5 (uniqid());' lors de la création d'un md5 du mot de passe? –
Et la différence entre $ storedPassword et $ actualPassword dans le deuxième bloc est juste une faute de frappe? –
Oui, c'est correct. –