Fonction PHP PASSOT_HASH

Fonction PHP PASSOT_HASH
Le mot de passe de l'utilisateur de toute application est très important pour protéger l'application à partir de différentes attaques. De nombreuses façons existent en PHP pour générer un mot de passe sécurisé pour rendre l'application plus sécurisée. La fonction Password_Hash () est une façon de créer un nouveau hachage de mot de passe à l'aide de l'algorithme de hachage unidirectionnel. La syntaxe de cette fonction est donnée ci-dessous.

Syntaxe:

String | False Password_hash (String $ mot de passe, chaîne | int | null $ algo [, array $ options = []])

Le premier argument est obligatoire, et il est utilisé pour prendre la valeur de la chaîne qui sera hachée.

Le deuxième argument est obligatoire, et il est utilisé pour prendre l'entier ou la chaîne qui fait référence à un algorithme, qui sera utilisé pour créer le hachage du mot de passe. Cette fonction prend actuellement en charge les algorithmes suivants.

Password_default:

Il utilise l'algorithme BCrypt pour générer le hachage de mot de passe.

Password_bcrypt:

Il utilise l'algorithme crypt_blowfish pour générer le hachage de mot de passe.

Password_argon2i:

Il utilise l'algorithme de hachage Argon2i pour générer le hachage de mot de passe, et il peut être utilisé si PHP a été compilé avec le support Argon2.

Password_argon2id:

Il utilise l'algorithme de hachage Argon2id pour générer le hachage de mot de passe, et il peut être utilisé si PHP a été compilé avec le support Argon2.

Le troisième argument est facultatif, et il est utilisé pour définir un tableau qui contient les options prises en charge de l'algorithme utilisé.

Les options suivantes sont prises en charge par l'algorithme Password_Bcrypt.

sel:

Cette option est obsolète maintenant. La valeur de sel générée par défaut est préférable à utiliser.

coût:

Il est utilisé pour définir le coût de l'algorithme qui doit être utilisé. La valeur par défaut est 10.

Les options suivantes sont prises en charge par les algorithmes de Password_argon2i et Password_argon2id.

Memory_Cost:

Il est utilisé pour définir la mémoire maximale dans KB qui peut être utilisée pour générer le hachage du mot de passe en utilisant le hachage Argon2.

Time_cost:

Il est utilisé pour définir la durée maximale qui peut être utilisée pour générer le hachage de mot de passe en utilisant le hachage Argon2.

Sujets:

Il est utilisé pour définir le nombre de threads pour générer le hachage de mot de passe à l'aide du hachage Argon2.

La fonction renvoie le mot de passe hachée sur le succès ou le faux en panne.

Password_hash () Exemples de fonction

Les utilisations de la fonction Password_Hash () pour créer des mots de passe hachés ont été dans la prochaine partie du tutoriel.

Exemple-1: Créez un mot de passe haché en utilisant l'algorithme de hachage par défaut

Créez un fichier PHP avec le script suivant qui générera une valeur hachée d'un mot de passe en utilisant la fonction Password_Hash (), et l'algorithme de hachage par défaut a été utilisé ici. Les chaînes de mot de passe d'origine et hachée seront imprimées comme sortie du script.

// définir la valeur du mot de passe
$ mot de passe = 'SecretPassword';
// générer le mot de passe haché en fonction de l'algorithme par défaut
$ hashed_password = mot de passe_hash ($ mot de passe, mot de passe_default);
// Imprime le mot de passe original et haché
Echo "Le mot de passe d'origine: $ mot de passe"
écho "
Le mot de passe haché à l'aide de l'algorithme par défaut: $ hashed_password"
?>

Sortir:

La sortie suivante apparaîtra après avoir exécuté le script ci-dessus.

Exemple-2: Créez un mot de passe haché à l'aide de la valeur du coût et de l'algorithme de mot de passe_bcrypt

Créez un fichier PHP avec le script suivant qui générera une valeur hachée d'un mot de passe en utilisant la fonction Password_Hash (). L'algorithme Password_Bcrypt et la valeur du coût ont été utilisés dans la fonction Password_Hash () pour générer le mot de passe hachée. La chaîne de mot de passe originale et hachée sera imprimée en tant que sortie du script.

// définir la valeur du mot de passe
$ mot de passe = 'SecretPassword';
// Définissez la valeur de coût pour l'algorithme de mot de passe_bcrypt
$ option = ["Cost" => 5];
// générer le mot de passe haché en fonction de l'algorithme par défaut
$ hashed_password = mot de passe_hash ($ mot de passe, mot de passe_bcrypt, option $);
// Imprime le mot de passe original et haché
Echo "Le mot de passe d'origine: $ mot de passe"
écho "
Le mot de passe haché à l'aide de Mord_Bcrypt: $ hashed_password"
?>

Sortir:

La sortie suivante apparaîtra après avoir exécuté le script ci-dessus.

Exemple-3: Créez un mot de passe haché à l'aide de l'algorithme de Password_argon2i

Créez un fichier PHP avec le script suivant qui générera une valeur hachée d'un mot de passe en utilisant la fonction Password_Hash (). L'algorithme Password_argon2i a été utilisé dans la fonction Password_Hash () pour générer le mot de passe hachée. Les chaînes de mot de passe d'origine et hachée seront imprimées comme sortie du script.

// définir la valeur du mot de passe
$ mot de passe = 'SecretPassword';
// générer le mot de passe haché en fonction de l'algorithme par défaut
$ hashed_password = mot de passe_hash ($ mot de passe, mot de passe_argon2i);
// Imprime le mot de passe original et haché
Echo "Le mot de passe d'origine: $ mot de passe"
écho "
Le mot de passe haché à l'aide de Password_argon2i: $ hashed_password"
?>

Sortir:

La sortie suivante apparaîtra après avoir exécuté le script ci-dessus.

Exemple-4: Utilisation de la fonction Password_Hash () avec Password_verify ()

Créez un fichier PHP avec le script suivant pour vérifier le mot de passe haché à l'aide de la fonction Password_verify () après avoir généré le mot de passe haché à partir d'une chaîne de données à l'aide de la fonction Password_Hash (). Le mot de passe sera tiré du paramètre URL et vérifie si le mot de passe est valide en utilisant la valeur du mot de passe et les valeurs de mot de passe hachée dans les arguments de la fonction Password_verify (). Si cette fonction renvoie vrai, le mot de passe est valide; Sinon, le mot de passe n'est pas valide.

// définir la valeur du mot de passe
$ mot de passe = 'SecretPassword';
// Générer le mot de passe haché en fonction de l'algorithme par défaut
$ hashed_password = mot de passe_hash ($ mot de passe, mot de passe_default);
if (isset ($ _ get ['mot de passe']))

// attribue le mot de passe donné à partir de l'URL
$ v_password = $ _get ['mot de passe'];
// Vérifiez la validité du mot de passe en utilisant la fonction Password_verify ()
if (password_verify ($ v_password, $ hashed_password))
Echo 'Le mot de passe est valide.';;
autre
Echo 'Le mot de passe n'est pas valide.';;

autre
Echo "Le mot de passe n'est pas donné."
?>

Sortir:

Après avoir exécuté le script ci-dessus sans le paramètre URL, la sortie suivante apparaîtra.

http: // localhost / php / pass4.php

La sortie suivante apparaîtra après avoir exécuté le script ci-dessus avec la valeur du paramètre URL, 'SecretPassword ', Et le mot de passe hachée a été généré pour cette valeur dans le script. Donc, le mot de passe est valide.

http: // localhost / php / pass4.php?mot de passe = SecretPassword

La sortie suivante apparaîtra après avoir exécuté le script ci-dessus avec la valeur du paramètre URL, 'secret' invalide.

http: // localhost / php / pass4.php?mot de passe = secret

Conclusion

Différentes façons de créer un mot de passe haché à l'aide de la fonction Password_Hash () ont été montrés dans les exemples de ce tutoriel pour aider les utilisateurs de PHP à appliquer correctement cette fonction dans leur script.