bcrypt
password_hash / password_verify
bcrypt password hashing and verification.
Comment utiliser
Vue d'ensemble
Outil pour générer des hachages avec bcrypt ou vérifier des chaînes de hachage.
Un cas d'utilisation courant du hachage est le "stockage des mots de passe".
En principe fondamental, il est impossible d'inverser un hachage pour obtenir les données originales (unidirectionnel).
Il est impossible d'obtenir le mot de passe original à partir de son hachage bcrypt.
C'est pourquoi les mots de passe ne sont pas stockés directement — à la place, le hachage est généralement stocké.
Le même mot de passe générera toujours le même hachage.
Cela signifie que vous pouvez vérifier une chaîne en la comparant avec un hachage connu.
(Par exemple, pour vérifier si un hachage a été généré à partir d'un mot de passe donné)
Génération de hachage (password_hash)
Le hachage bcrypt est effectué avec un code comme le suivant.$hash = password_hash('string_to_hash', PASSWORD_BCRYPT, [
'cost' => 'cost',
]);
Les hachages générés par bcrypt incluent un salt (chaîne aléatoire), donc une chaîne différente est produite à chaque fois.
$2y$10$Z0kGQ04hCto9dnMu.GyzWOWNQmoKyeF5PXH.zsrf/I.yNJRcbdN86
Le coût par défaut de la fonction password_hash est 10.
Bien que password_hash accepte une plage de 4–31, cet outil le limite à 4–15 pour éviter une surcharge excessive du serveur.
(Des valeurs plus élevées peuvent prendre beaucoup de temps à traiter.)
Vérification de hachage (password_verify)
Les hachages bcrypt suivent un format spécifique qui inclut le salt et le nombre d'itérations, permettant de vérifier si un hachage a été généré à partir d'une chaîne donnée.
La vérification de hachage bcrypt est effectuée avec un code comme le suivant.$result = password_verify('original_string', 'hash_string_to_verify');