Maison >développement back-end >tutoriel php >Pourquoi les valeurs de hachage de mot de passe diffèrent-elles en PHP et comment les vérifier ?
Dans la sécurisation des systèmes de connexion, le hachage de mot de passe est souvent utilisé pour protéger les informations d'identification des utilisateurs. Cependant, rencontrer des valeurs hachées différentes à chaque fois peut soulever des inquiétudes.
Problème :
Tentative de hachage de mots de passe avec password_hash(), les valeurs générées varient et une vérification ultérieure via password_verify() échoue.
Explication :
password_hash() renvoie intentionnellement des valeurs uniques à chaque fois en raison de son utilisation de la randomisation à des fins de sécurité. Cela garantit que le hachage correspondant à chaque mot de passe est unique, ce qui rend beaucoup plus difficile l'attaque ou la compromission des comptes d'utilisateurs.
Vérification :
Pour vérifier correctement les mots de passe hachés, l'original le mot de passe non haché et le hachage stocké ($dbpassword) doivent être utilisés comme entrées pour password_verify(). La fonction est chargée de comparer le mot de passe non haché avec la version hachée, en validant s'ils correspondent.
Amélioration de la sécurité :
Pour améliorer encore la sécurité, envisagez d'augmenter le coût de hachage passé en argument à password_hash(). Un coût plus élevé, comme 15 dans l'exemple ci-dessous, entraîne davantage d'itérations de l'algorithme de hachage, ce qui le rend plus intensif en termes de calcul et augmente la résistance aux attaques par force brute.
<code class="php">$password = password_hash($password4, PASSWORD_DEFAULT, ['cost' => 15]);</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!