Maison  >  Article  >  développement back-end  >  Comment implémenter le cryptage AES en PHP

Comment implémenter le cryptage AES en PHP

WBOY
WBOYoriginal
2022-03-15 10:24:4333868parcourir

En PHP, vous pouvez utiliser la fonction "openssl_encrypt()" pour implémenter le cryptage aes. Il vous suffit de définir la méthode de cryptage dans le paramètre sur "AES-128-ECB". AES-128- ECB', clé de cryptage, format des données)".

Comment implémenter le cryptage AES en PHP

L'environnement d'exploitation de cet article : système Windows 10, PHP version 7.1, ordinateur Dell G3.

Comment implémenter le cryptage aes en php

En php, nous utilisons openssl_encrypt pour implémenter le cryptage et openssl_decrypt pour implémenter le décryptage

1 : Explication détaillée de la méthode openssl_encrypt :

openssl_encrypt($data, $method, $key, $options = 0, $iv = "", &$tag = NULL, $aad = "", $tag_length = 16)

Paramètres :

1.$data : crypté brut text

2 .$method : Méthode de cryptage : Vous pouvez obtenir les méthodes de cryptage via openssl_get_cipher_methods()

3.$passwd : Clé de cryptage [mot de passe]

4.$options : Options de format de données (facultatif) [les options sont : ] : 0,OPENSSL_RAW_DATA=1,OPENSSL_ZERO_PADDING=2,OPENSSL_NO_PADDING=3

5.$iv : vecteur d'initialisation dense (facultatif), attention : si la méthode est DES−ECB, iv n'a pas besoin d'être renseigné

6.$tag : utilisez le mode mot de passe AEAD (GCM ou CCM) lors du passage de la balise d'authentification référencée (facultatif)

7.$aad : données d'authentification supplémentaires. (Facultatif)

8.$tag_length : Vérifiez la longueur de la balise. En mode GCM, sa plage est de 4 à 16 (facultatif)

2 : Explication détaillée de la méthode openssl_decrypt

openssl_decrypt($data, $method, $password, $options = 1, $iv = "", $tag = "",  $aad = "")

Paramètres :

1.$data : Le message crypté à déchiffrer.

2.$method : Méthode de décryptage : Vous pouvez obtenir les méthodes de décryptage via openssl_get_cipher_methods()

3.$passwd : Clé de décryptage [mot de passe]

4.$options : Options de format de données (facultatif) [Les options sont :] 0,OPENSSL_RAW_DATA=1,OPENSSL_ZERO_PADDING=2,OPENSSL_NO_PADDING=3

5.$iv : vecteur d'initialisation dense (facultatif), veuillez noter : si la méthode est DES−ECB, iv n'a pas besoin d'être renseigné

6. $tag : Balise d'authentification en mode mot de passe AEAD (facultatif)

7.$aad : Données d'authentification supplémentaires. (Facultatif)

Trois : implémenter le cryptage et le décryptage AES

1 : cryptage AES

// 要加密的字符串
$data = 'test';
// 密钥
$key = '123456';
// 加密数据 'AES-128-ECB' 可以通过openssl_get_cipher_methods()获取
$encrypt = openssl_encrypt($data, 'AES-128-ECB', $key, 0);
echo (($encrypt));

2 : décryptage AES

//解密字符串
$encrypt = '***';
//密钥
$key = '123456';
// 解密数据
$decrypt = openssl_decrypt($encrypt, 'AES-128-ECB', $key, 0);
echo $decrypt;

Selon ce qui précède, vous pouvez implémenter la fonction de cryptage et de décryptage AES

Apprentissage recommandé : " Tutoriel vidéo PHP

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