Maison  >  Article  >  développement back-end  >  Comment crypter et décrypter des données sensibles en PHP

Comment crypter et décrypter des données sensibles en PHP

王林
王林original
2023-07-05 15:51:131203parcourir

Comment crypter et décrypter les données sensibles en PHP

Dans le monde en ligne, la protection des données sensibles des utilisateurs est cruciale. Pour garantir la confidentialité et la sécurité des utilisateurs, les développeurs utilisent souvent des algorithmes de chiffrement pour chiffrer et déchiffrer les données sensibles. En PHP, de nombreux algorithmes de chiffrement peuvent être utilisés. Cet article présentera certains algorithmes de chiffrement couramment utilisés et donnera des exemples de code correspondants.

1. Algorithme de cryptage symétrique

L'algorithme de cryptage symétrique est un algorithme qui utilise la même clé pour crypter et déchiffrer les données. Le principal avantage de cet algorithme est un cryptage et un déchiffrement rapides, mais la transmission et la gestion des clés entraîneront des problèmes de sécurité.

  1. Crypter et décrypter les données à l'aide de l'algorithme AES

AES (Advanced Encryption Standard) est une norme de cryptage avancée largement utilisée pour crypter et décrypter les données. Vous trouverez ci-dessous un exemple de code pour le cryptage et le déchiffrement des données à l'aide de l'algorithme AES :

$key = '1234567890123456'; // 密钥,必须是16位
$data = 'sensitive data'; // 敏感数据

// 加密数据
$encryptedData = openssl_encrypt($data, 'AES-128-ECB', $key, OPENSSL_RAW_DATA);
$base64EncryptedData = base64_encode($encryptedData);

// 解密数据
$encryptedData = base64_decode($base64EncryptedData);
$decryptedData = openssl_decrypt($encryptedData, 'AES-128-ECB', $key, OPENSSL_RAW_DATA);

echo $decryptedData;  // 输出解密后的数据
  1. Cryptage et déchiffrement des données à l'aide de l'algorithme DES

DES (Data Encryption Standard) est un algorithme de cryptage symétrique qui a été remplacé par AES, mais il existe encore L'algorithme DES est utilisé dans certains scénarios. Voici un exemple de code pour le cryptage et le décryptage des données à l'aide de l'algorithme DES :

$key = '12345678'; // 密钥,必须是8位
$data = 'sensitive data'; // 敏感数据

// 加密数据
$encryptedData = openssl_encrypt($data, 'DES-ECB', $key, OPENSSL_RAW_DATA);
$base64EncryptedData = base64_encode($encryptedData);

// 解密数据
$encryptedData = base64_decode($base64EncryptedData);
$decryptedData = openssl_decrypt($encryptedData, 'DES-ECB', $key, OPENSSL_RAW_DATA);

echo $decryptedData;  // 输出解密后的数据

2. Algorithme de cryptage asymétrique

L'algorithme de cryptage asymétrique utilise une paire de clés, à savoir une clé publique et une clé privée, pour crypter et déchiffrer les données. . L’avantage de cet algorithme est que la transmission et la gestion des clés sont relativement simples et que la sécurité est élevée.

  1. Crypter et décrypter les données à l'aide de l'algorithme RSA

RSA (Rivest-Shamir-Adleman) est un algorithme de cryptage asymétrique largement utilisé. Voici un exemple de code pour le cryptage et le déchiffrement des données à l'aide de l'algorithme RSA :

// 生成密钥对
$config = [
    'private_key_bits' => 2048 // 私钥长度
];
$res = openssl_pkey_new($config);
openssl_pkey_export($res, $privateKey); // 导出私钥
$publicKey = openssl_pkey_get_details($res)['key']; // 获取公钥

$data = 'sensitive data'; // 敏感数据

// 加密数据
openssl_public_encrypt($data, $encryptedData, $publicKey);
$base64EncryptedData = base64_encode($encryptedData);

// 解密数据
$encryptedData = base64_decode($base64EncryptedData);
openssl_private_decrypt($encryptedData, $decryptedData, $privateKey);

echo $decryptedData;  // 输出解密后的数据

3. Algorithme de hachage

L'algorithme de hachage est un algorithme qui mappe des données de n'importe quelle longueur en une chaîne unique de longueur fixe. Généralement utilisé pour vérifier l’intégrité et la cohérence des données, ce qui est irréversible.

  1. Calculez la valeur de hachage des données à l'aide de l'algorithme MD5

MD5 (Message Digest Algorithm 5) est un algorithme de hachage largement utilisé. Voici un exemple de code qui utilise l'algorithme MD5 pour calculer la valeur de hachage des données :

$data = 'sensitive data'; // 敏感数据

// 计算哈希值
$hashValue = md5($data);

echo $hashValue;  // 输出哈希值
  1. Utilisez l'algorithme SHA256 pour calculer la valeur de hachage des données

SHA256 (Secure Hash Algorithm 256-bit) est un plus algorithme de hachage sécurisé. Vous trouverez ci-dessous un exemple de code qui utilise l'algorithme SHA256 pour calculer la valeur de hachage des données :

$data = 'sensitive data'; // 敏感数据

// 计算哈希值
$hashValue = hash('sha256', $data);

echo $hashValue;  // 输出哈希值

Cet article présente les méthodes courantes de cryptage et de déchiffrement des données sensibles en PHP, notamment les algorithmes de cryptage symétriques, les algorithmes de cryptage asymétriques et les algorithmes de hachage. Les développeurs peuvent choisir l'algorithme approprié pour protéger les données sensibles des utilisateurs en fonction de la situation spécifique. Cependant, il convient de noter que les algorithmes de cryptage ne sont qu'un moyen de protéger les données et que d'autres mesures de sécurité doivent être utilisées pour garantir une sécurité complète 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