Analyse complète des fonctions de l'algorithme de cryptage PHP : applications d'algorithme de cryptage de password_hash, password_verify, openssl_encrypt et autres fonctions
Dans le monde Internet moderne, la sécurité des données est devenue une chose très importante. Afin de protéger les informations privées des utilisateurs, nous devons crypter les données sensibles. En tant que langage de programmation côté serveur largement utilisé, PHP fournit une série de fonctions d'algorithme de cryptage, telles que password_hash, password_verify, openssl_encrypt, etc., pour protéger la sécurité des données utilisateur. Cet article analysera ces fonctions en détail et fournira des exemples de code spécifiques.
La fonction password_hash est une fonction fournie par PHP pour générer des valeurs de hachage des mots de passe. Elle utilise l'algorithme bcrypt pour obtenir un stockage sécurisé des mots de passe. bcrypt est une fonction de hachage de mot de passe basée sur l'algorithme de cryptage Blowfish. Elle se caractérise par une irréversibilité unidirectionnelle et peut s'adapter à l'augmentation de la difficulté de calcul à mesure que les performances de l'ordinateur s'améliorent.
Voici un exemple d'utilisation de la fonction password_hash pour générer une valeur de hachage de mot de passe :
$password = "123456"; $hashedPassword = password_hash($password, PASSWORD_DEFAULT); echo $hashedPassword;
Dans l'exemple ci-dessus, nous utilisons la fonction password_hash pour générer une valeur de hachage du mot de passe initial "123456". Le premier paramètre de la fonction est le mot de passe d'origine à hacher et le deuxième paramètre est l'option de l'algorithme de cryptage. PASSWORD_DEFAULT représente l'utilisation de l'algorithme bcrypt pour le chiffrement et peut également être spécifié à l'aide de la constante PASSWORD_BCRYPT.
Ensuite, nous pouvons utiliser la fonction password_verify pour vérifier que le mot de passe correspond :
$enteredPassword = "123456"; if (password_verify($enteredPassword, $hashedPassword)) { echo "密码匹配"; } else { echo "密码不匹配"; }
Dans l'exemple ci-dessus, nous comparons le mot de passe saisi par l'utilisateur avec la valeur de hachage générée précédemment. Si le mot de passe est correct, « Le mot de passe correspond » est affiché ; sinon, « Le mot de passe ne correspond pas » est affiché.
La fonction openssl_encrypt est une fonction fournie par PHP pour le cryptage symétrique. Elle utilise la bibliothèque OpenSSL pour implémenter l'algorithme de cryptage. Cette fonction prend en charge divers algorithmes de chiffrement symétriques courants, tels que AES, DES, 3DES, etc.
Voici un exemple de cryptage AES utilisant la fonction openssl_encrypt :
$data = "Hello, World!"; $key = "0123456789abcdef"; $iv = "abcdef0123456789"; $encryptedData = openssl_encrypt($data, "AES-128-CBC", $key, 0, $iv); echo $encryptedData;
Dans l'exemple ci-dessus, nous utilisons la fonction openssl_encrypt pour crypter AES-128-CBC les données brutes. Le premier paramètre de la fonction est les données à chiffrer, le deuxième paramètre est le nom de l'algorithme de chiffrement, le troisième paramètre est la clé requise pour le chiffrement, le quatrième paramètre est le mode de chiffrement et le cinquième paramètre est la méthode de chiffrement. .vecteur requis.
Ensuite, nous pouvons utiliser la fonction openssl_decrypt pour décrypter :
$decryptedData = openssl_decrypt($encryptedData, "AES-128-CBC", $key, 0, $iv); echo $decryptedData;
Dans l'exemple ci-dessus, nous utilisons la fonction openssl_decrypt pour décrypter les données précédemment cryptées. Les paramètres de la fonction sont les mêmes que ceux de la fonction openssl_encrypt. Après décryptage, nous pouvons obtenir les données originales "Hello, World!".
Pour résumer, PHP fournit une série de puissantes fonctions d'algorithme de cryptage, telles que password_hash, password_verify, openssl_encrypt, etc. En utilisant correctement ces fonctions, nous pouvons protéger les données privées des utilisateurs et améliorer la sécurité des données. J'espère que cet article vous permettra de mieux comprendre comment utiliser ces fonctions et vous aidera dans le développement réel.
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!