Maison  >  Article  >  développement back-end  >  Quelles sont les méthodes de cryptage en php ?

Quelles sont les méthodes de cryptage en php ?

zbt
zbtoriginal
2023-07-17 11:32:303805parcourir

Les méthodes de cryptage PHP incluent : 1. Cryptage MD5 (algorithme de résumé de message 5) ; 2. Cryptage SHA (algorithme de hachage sécurisé) 3. Cryptage de hachage de mot de passe (hachage avec des sels) ; Cryptage asymétrique.

Quelles sont les méthodes de cryptage en php ?

L'environnement d'exploitation de ce tutoriel : système Windows 10, version php8.1.3, ordinateur DELL G3.

PHP est un langage de programmation côté serveur populaire largement utilisé dans le développement de sites Web et la gestion de bases de données. La sécurité est une considération clé lors de la transmission et du stockage des données. Afin de protéger la sécurité des informations sensibles, PHP propose une variété d'algorithmes et de méthodes de cryptage. Cet article présentera plusieurs technologies de chiffrement PHP courantes.

1. Cryptage MD5 (Message Digest Algorithm 5)

MD5 est un algorithme de cryptage couramment utilisé qui peut convertir des données de n'importe quelle longueur en une chaîne de longueur fixe. En PHP, le cryptage MD5 peut être implémenté via la fonction md5().

Exemple de code :

$data="HelloWorld";
$encryptedData=md5($data);
echo$encryptedData;

La chaîne cryptée MD5 est similaire à un nombre hexadécimal de 32 caractères, et elle est irréversible, c'est-à-dire que les données originales ne peuvent pas être récupérées à partir de la chaîne cryptée.

2. Cryptage SHA (Secure Hash Algorithm)

SHA est une fonction de hachage cryptographique largement utilisée pour la vérification de l'intégrité des données et de la sécurité. PHP fournit une variété d'algorithmes SHA, tels que SHA-1, SHA-256, SHA-512, etc. Le cryptage SHA peut être implémenté via la fonction hash().

Exemple de code :

$data="HelloWorld";
$encryptedData=hash("sha256",$data);
echo$encryptedData;

La longueur de la chaîne cryptée par SHA variera selon différents algorithmes. Semblable au MD5, le cryptage SHA est irréversible.

3. Cryptage de hachage de mot de passe (Hashing with Salts)

Le cryptage de hachage est une méthode de cryptage unidirectionnelle souvent utilisée pour stocker des mots de passe ou d'autres informations sensibles. Contrairement à MD5 et SHA, le cryptage par hachage utilise généralement du « sel » pour améliorer la sécurité. Le sel est une chaîne générée aléatoirement qui est ajoutée aux données d'origine avant de les chiffrer. En PHP, vous pouvez utiliser la fonction password_hash() pour le hachage de mot de passe.

Exemple de code :

$password="mypassword";
$options=array('cost'=>12);
$encryptedPassword=password_hash($password,PASSWORD_BCRYPT,$options);
echo$encryptedPassword;

La fonction password_hash() générera une chaîne contenant le mot de passe et le sel, qui sera stockée dans la base de données pour une vérification ultérieure.

4. Cryptage symétrique

Le cryptage symétrique utilise la même clé pour crypter et déchiffrer les données. En PHP, vous pouvez utiliser les fonctions openssl_encrypt() et openssl_decrypt() pour effectuer des opérations de chiffrement symétriques.

Exemple de code :

$data="HelloWorld";
$key="mykey";
$encryptedData=openssl_encrypt($data,"AES-128-ECB",$key);
echo$encryptedData;

L'exemple ci-dessus utilise l'algorithme AES-128 pour le cryptage.

5. Cryptage asymétrique

Le cryptage asymétrique utilise une paire de clés pour le cryptage et le déchiffrement, dont l'une est utilisée pour le cryptage et l'autre pour le déchiffrement. En PHP, vous pouvez utiliser les fonctions openssl_private_encrypt() et openssl_public_decrypt() pour effectuer des opérations de chiffrement asymétrique.

Exemple de code :

$data="HelloWorld";
$privateKey=openssl_pkey_get_private(file_get_contents("private.pem"));
openssl_private_encrypt($data,$encryptedData,$privateKey);
echo$encryptedData;
$publicKey=openssl_pkey_get_public(file_get_contents("public.pem"));
openssl_public_decrypt($encryptedData,$decryptedData,$publicKey);
echo$decryptedData;

Dans l'exemple ci-dessus, le fichier de clé privée est obtenu via la fonction openssl_pkey_get_private(), puis les données sont cryptées via la fonction openssl_private_encrypt(). Utilisez la fonction openssl_pkey_get_public() pour obtenir le fichier de clé publique, et enfin déchiffrez les données via la fonction openssl_public_decrypt().

Résumé :

PHP fournit une variété d'algorithmes et de méthodes de cryptage pour garantir la sécurité des données. Le choix de la méthode de cryptage appropriée dépend de la situation et des besoins. Les méthodes de cryptage par hachage telles que MD5 et SHA conviennent à la vérification de l'intégrité des données, tandis que le cryptage par hachage des mots de passe est utilisé pour stocker des mots de passe ou d'autres informations sensibles. Le chiffrement symétrique et le chiffrement asymétrique conviennent aux opérations de chiffrement lors de la transmission et du stockage des données. En fonction des besoins réels, nous pouvons choisir une technologie de cryptage appropriée pour améliorer la sécurité des données. .

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!

Déclaration:
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