Dans PHP, la fonction crypt () est un puissant outil de chiffrement cryptographique qui prend en charge une variété d'algorithmes de chiffrement, y compris le chiffrement de hachage basé sur SHA-256 et SHA-512. Ces deux algorithmes se distinguent par des préfixes de 5 $ et 6 $ dans la fonction crypte () . Cet article expliquera en détail comment utiliser ces deux méthodes pour chiffrer les mots de passe et fournir un exemple de code correspondant.
Crypt () est une fonction utilisée pour le chiffrement unidirectionnel en PHP, généralement utilisée pour le hachage des mots de passe. Lorsque vous l'utilisez, vous pouvez contrôler l'algorithme de chiffrement et les résultats de chiffrement en spécifiant le "sel".
string crypt(string $string, string $salt)
$ String : La chaîne d'origine qui doit être cryptée.
$ SALT : L'algorithme de chiffrement et sa configuration, le format varie de l'algorithme à l'algorithme.
SHA-256 est une fonction de hachage cryptographique couramment utilisée, qui est activée par le préfixe de 5 $ dans la fonction crypte () . Vous pouvez éventuellement ajouter des "tours" et des valeurs de sel personnalisées.
$password = 'mypassword';
$salt = '$5$rounds=5000$mysaltvalue$';
$hash = crypt($password, $salt);
echo $hash;
illustrer:
5 $ Spécifie l'utilisation de SHA-256.
tours = 5000 définir le nombre de tours de chiffrement (facultatif).
MySaltValue est une chaîne de valeur de sel qui peut être personnalisée.
Les résultats du cryptage commenceront avec 5 $ pour une identification facile.
L'exemple de sortie peut être:
$5$rounds=5000$mysaltvalue$5O2dlyLbMFx.kPQzMt4HZG4lDHzs9DGx85xuRSkjRA/
De même, SHA-512 peut également être implémenté via Crypt () , il suffit de changer le préfixe à 6 $ .
$password = 'mypassword';
$salt = '$6$rounds=10000$customsalt$';
$hash = crypt($password, $salt);
echo $hash;
illustrer:
6 $ Activer le cryptage SHA-512.
Rounds = 10000 indique que 10000 itérations de chiffrement sont effectuées.
CustomSalt est votre valeur de sel.
L'exemple de sortie peut être:
$6$rounds=10000$customsalt$WXnQmvLQu.wNcB3VJmfYB/mURR3p8ddmdvYqTbWn1l6gBBR4vlmMHI8LtkYmK5I24T2MGk7pDODDZAxU2ueCd0
Pour la sécurité, la valeur de sel doit être aussi aléatoire que possible. Voici une fonction simple pour générer des valeurs de sel:
function generateSalt($length = 16) {
return bin2hex(random_bytes($length / 2));
}
$password = 'mypassword';
$salt = '$6$rounds=10000$' . generateSalt() . '$';
$hash = crypt($password, $salt);
echo $hash;
Stockage du mot de passe utilisateur : il n'est pas recommandé d'enregistrer le mot de passe utilisateur en texte brut. L'utilisation de crypte () avec une valeur de sel sûre et un nombre approprié de tours est un moyen sûr.
Comparez les mots de passe : lors de la vérification des mots de passe, l'entrée de l'utilisateur doit être réintégrée avec la même valeur de sel, puis comparée à la valeur de hachage stockée.
Transmission HTTPS : Assurez-vous que les données cryptées sont transmises via des protocoles sécurisés tels que https://m66.net pour éviter les attaques d'homme dans le milieu.
Grâce à cet article, vous pouvez utiliser la fonction Crypt () de PHP pour combiner 5 $ et 6 $ pour implémenter un chiffrement sécurisé basé sur SHA-256 et SHA-512. Cette méthode convient à plusieurs scénarios tels que l'authentification de connexion et la protection des informations utilisateur. La combinaison de la forte stratégie de valeur de sel et des paramètres de numéro de rond élevé peut considérablement améliorer la sécurité des données.