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

# password_needs_rehash

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

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

### Description

function 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

Version | Description
--- | ---
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$12$4Umg0rCJwMswRw/l.SwHvuQV01coP0eWmGzd61QH2RvAOMANUBGC.';

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

    // 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)) {
            // On crée un nouveau hachage afin de mettre à jour l'ancien
            $newHash = password_hash($password, $algorithm, $options);

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

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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open