Maison > développement back-end > tutoriel php > Cryptage PHP : API de hachage de mot de passe

Cryptage PHP : API de hachage de mot de passe

藏色散人
Libérer: 2023-04-08 12:50:02
avant
4627 Les gens l'ont consulté

Après PHP 5.5, l'API de hachage de mot de passe a été introduite pour créer et vérifier les mots de passe hachés. Elle est fournie avec le noyau et ne nécessite aucune installation ni configuration d'extension. Il fournit principalement quatre fonctions à utiliser :

● password_hash() : créer un hachage du mot de passe

● password_verify() : vérifier si le mot de passe correspond au hachage

● password_needs_rehash() : vérifie si le hachage donné correspond à l'option donnée ;

● password_get_info() : renvoie des informations pertinentes sur le hachage spécifié ;

1. password_hash(string password, int algo [, array options])

Utilisez un algorithme de hachage unidirectionnel suffisamment puissant pour générer un hachage du mot de passe. Cette fonction est compatible avec crypt(), c'est-à-dire que la valeur de hachage générée par crypt() peut être vérifiée à l'aide des fonctions associées de l'API de hachage de mot de passe.

● mot de passe : mot de passe de l'utilisateur.

● algo : constante de l'algorithme cryptographique. Les valeurs incluent :

● PASSWORD_DEFAULT : utilisez l'algorithme bcrypt. Le résultat final généré peut dépasser 60 caractères ;

● PASSWORD_BCRYPT : utilisez l'algorithme CRYPT_BLOWFISH pour créer le hachage. Le résultat final est une chaîne de 60 caractères, ou FALSE en cas d'échec.

● salt : fournissez manuellement la valeur salt pour les mots de passe hachés. En cas d'omission, la fonction génère automatiquement une valeur de sel aléatoire pour chaque hachage de mot de passe. Cet élément a été abandonné en PHP 7.0 ;

● coût : représente le coût utilisé par l'algorithme. La valeur par défaut est 10, qui peut être augmentée en fonction des conditions réelles.

2. password_verify(string password, string hash)

● mot de passe : Mot de passe fourni par l'utilisateur.

Quantity hash : valeur de hachage créée par password_hash(). Renvoie VRAI s'il y a une correspondance, FAUX sinon. Les attaques chronométrées ne fonctionnent pas sur cette fonction.

3, password_needs_rehash(string hash, integer algo [, array opitons])

weight hash : le hachage généré par password_hash();

weight algo : constantes de l'algorithme cryptographique

Quantity options : Un tableau associatif contenant les options pertinentes.

4, password_get_info(string hash) hash : Hachage généré par password_hash(). Renvoie un tableau associatif contenant trois éléments :

● algo : constante de l'algorithme cryptographique

● algoName :

● options : fournies lors de l'appel des options password_hash() ;

Exemple

$str = 'chicken,run!';
$pwd1 = password_hash($str, PASSWORD_BCRYPT);
$pwd2 = crypt($str);

var_dump(password_verify('chicken,run!', $pwd1));    // 输出 true
var_dump(password_verify('chicken,ran!', $pwd1));    // 输出 false
var_dump(password_verify($str, $pwd2));    // 输出 true
var_dump(password_needs_rehash($pwd1, PASSWORD_BCRYPT, ['cost'=>10]));   // 输出 false,因为 password_hash() 在加密时,出来默认 cost 为 10 外,还会指定随机的盐值
Copier après la connexion

Pour plus de contenu lié à la programmation, veuillez faire attention à la colonne Introduction à la programmation sur le site Web PHP chinois !

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!

Étiquettes associées:
php
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers numéros
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal