Maison >développement back-end >tutoriel php >Comment utiliser les fonctions PHP pour le chiffrement et le décryptage ?

Comment utiliser les fonctions PHP pour le chiffrement et le décryptage ?

PHPz
PHPzoriginal
2023-07-24 09:01:061692parcourir

Comment utiliser les fonctions PHP pour le cryptage et le décryptage ?

Dans l'environnement Internet moderne, la sécurité des données est particulièrement importante. Afin de protéger les informations importantes, nous devons souvent chiffrer et déchiffrer les données sensibles pour éviter qu'elles ne soient obtenues de manière malveillante. PHP, en tant que langage de script côté serveur couramment utilisé, fournit diverses fonctions pour effectuer des opérations de cryptage et de déchiffrement. Cet article explique comment utiliser les fonctions PHP pour le cryptage et le déchiffrement, et fournit des exemples de code correspondants.

1. Les concepts de base du cryptage et du déchiffrement

Le cryptage et le déchiffrement sont une paire d'opérations réciproques, c'est-à-dire la conversion du texte brut en texte chiffré via un algorithme de cryptage, puis l'utilisation du même algorithme ou d'un algorithme similaire pour reconvertir le texte chiffré en texte brut. . Dans ce processus, les algorithmes de chiffrement sont essentiels.

En PHP, les algorithmes de chiffrement couramment utilisés incluent le chiffrement symétrique et le chiffrement asymétrique.

  1. Cryptage symétrique : utilisez la même clé pour le cryptage et le déchiffrement. Les algorithmes de chiffrement symétrique couramment utilisés incluent DES, AES, etc. Les algorithmes de chiffrement symétriques sont rapides et adaptés au chiffrement et au déchiffrement de grandes quantités de données. L'exemple de code est le suivant :
$key = 'myKey';
$data = 'Hello, world!';

// 加密
$encryptedData = openssl_encrypt($data, 'AES-128-ECB', $key);

// 解密
$decryptedData = openssl_decrypt($encryptedData, 'AES-128-ECB', $key);

echo $encryptedData; // 输出:cnBEVmgzcmxaY3FFc3BlQXpPZGpjdz09
echo $decryptedData; // 输出:Hello, world!
  1. Cryptage asymétrique : utilisez une paire de clés pour le cryptage et le déchiffrement, dont l'une est la clé publique et l'autre la clé privée. Les algorithmes de chiffrement asymétriques couramment utilisés incluent RSA. Les algorithmes de chiffrement asymétriques offrent une sécurité élevée et conviennent à des scénarios tels que l'échange de données et la signature de certificats. L'exemple de code est le suivant :
// 生成密钥对
$keyPair = openssl_pkey_new(array(
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA
));

// 提取私钥
openssl_pkey_export($keyPair, $privateKey);

// 提取公钥
$publicKey = openssl_pkey_get_details($keyPair)["key"];

$data = 'Hello, world!';

// 加密
openssl_public_encrypt($data, $encryptedData, $publicKey);

// 解密
openssl_private_decrypt($encryptedData, $decryptedData, $privateKey);

echo base64_encode($encryptedData); // 输出:QaWFCDzF2HM6zLQ+...
echo $decryptedData; // 输出:Hello, world!

2. Plus de scénarios d'application

En plus du cryptage et du déchiffrement des chaînes ordinaires, les fonctions de cryptage de PHP peuvent également être appliquées aux scénarios suivants.

  1. Cryptage des mots de passe : lorsque les utilisateurs s'inscrivent et se connectent au système, les mots de passe doivent généralement être cryptés et stockés pour garantir la sécurité des données utilisateur. L'exemple de code est le suivant :
$password = '123456';

// 加密
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);

// 验证密码
if (password_verify($password, $hashedPassword)) {
    echo '密码正确';
} else {
    echo '密码错误';
}
  1. Cryptage d'URL : Parfois, des données sensibles doivent être transmises à d'autres pages. Afin d'éviter que les données ne soient interceptées de manière malveillante, la fonction de cryptage peut être utilisée pour crypter les paramètres d'URL. L'exemple de code est le suivant :
$data = 'Hello, world!';

// 加密
$encryptedData = urlencode(base64_encode($data));

// 解密
$decryptedData = base64_decode(urldecode($encryptedData));

echo $encryptedData; // 输出:SGVsbG8sIHdvcmxkIQ%3D%3D
echo $decryptedData; // 输出:Hello, world!

Ci-dessus sont quelques scénarios courants et des exemples de codes pour l'utilisation des fonctions PHP pour le cryptage et le déchiffrement. Dans les applications pratiques, nous devons choisir des algorithmes et des fonctions de chiffrement appropriés en fonction de besoins spécifiques pour améliorer la sécurité des données.

Résumé :

Cet article présente comment utiliser les fonctions PHP pour le cryptage et le déchiffrement, et fournit des exemples de code pertinents. En apprenant et en comprenant ces fonctions cryptographiques, nous pouvons mieux protéger les données sensibles et améliorer la sécurité du système. Bien entendu, la sélection des algorithmes et des fonctions de chiffrement doit être basée sur les besoins réels et les exigences de sécurité. J'espère que cet article vous aidera !

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