password_needs_rehash

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

password_needs_rehashVérifie que le hachage fourni est conforme à l'algorithme et aux options spécifiées

Description

password_needs_rehash(string$hash, string|int|null$algo, array$options = []): bool

Cette fonction vérifie que le hachage fourni correspond à l'algorithme et aux options spécifiées. Si ce n'est pas le cas, le hachage devrait être re-généré.

Liste de paramètres

hash

Un hachage créé par la fonction password_hash().

algo

Une constantes de l'algorithme de mot de passe représentant l'algorithme à utiliser lors du hachage du mot de passe.

options

Un tableau associatif contenant les options. Voir aussi les constantes de l'algorithme de mot de passe pour une documentation sur les options supportées pour chaque algorithme.

Valeurs de retour

Retourne true si le hachage doit être re-généré pour correspondre aux paramètres algo et options fournis, ou false sinon.

Historique

VersionDescription
7.4.0 Le paramètre algo attend désormais une chaîne de caractères, mais continue d'accepter un entier afin de conserver une compatibilité antérieure.

Exemples

Exemple #1 Usage de password_needs_rehash()

<?php

$password
= 'rasmuslerdorf';
$hash = '$2y$10$YCFsG6elYca568hBi2pZ0.3LDL5wjgxct1N8w/oLR/jfHsiQwCqTS';

$algorithm = PASSWORD_BCRYPT;
// Le paramètre cost de bcrypt peut évoluer avec le temps en fonction des améliorations matérielles.
$options = ['cost' => 12];

// Vérifions d'abord que le mot de passe correspond au hachage stocké
if (password_verify($password, $hash)) {
// Vérifie si soit l'algorithme ou les options ont changé
if (password_needs_rehash($hash, $algorithm, $options)) {
if (
password_needs_rehash($hash, PASSWORD_DEFAULT, $options)) {
// On crée un nouveau hachage afin de mettre à jour l'ancien
$newHash = password_hash($password, $algorithm, $options);

// Mettre à jour l'entré de l'utilisateur avec $newHash
}

// Exécute la connexion de l'utilisateur
}
?>
To Top