Maison  >  Article  >  développement back-end  >  Opérations de cryptage et de décryptage des données PHP

Opérations de cryptage et de décryptage des données PHP

PHPz
PHPzoriginal
2023-06-30 13:00:083415parcourir

PHP, en tant que langage de script côté serveur populaire, nécessite le cryptage et le déchiffrement des données pour garantir la sécurité des données lors du traitement des données sensibles. Cet article présentera comment PHP effectue le cryptage et le déchiffrement des données.

  1. Utilise un algorithme de cryptage symétrique
    L'algorithme de cryptage symétrique utilise la même clé pour le cryptage et le déchiffrement. En PHP, les opérations de chiffrement et de déchiffrement symétriques peuvent être effectuées à l'aide de l'algorithme AES (Advanced Encryption Standard). Les étapes spécifiques sont les suivantes :

(1) Générer la clé AES :

$key = random_bytes(32);  // 生成一个32字节长的随机密钥

(2) Crypter les données :

$data = "敏感数据";
$encrypted = openssl_encrypt($data, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);  // 加密数据
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('AES-256-CBC'));  // 生成一个随机的初始向量

(3) Décrypter les données :

$decrypted = openssl_decrypt($encrypted, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);  // 解密数据
  1. Utiliser un algorithme de cryptage asymétrique
    L'algorithme de cryptage asymétrique utilise le public. la clé est utilisée pour le cryptage et la clé privée est utilisée pour le déchiffrement. En PHP, vous pouvez utiliser l'algorithme RSA (Rivest-Shamir-Adleman) pour les opérations de chiffrement et de déchiffrement asymétriques. Les étapes spécifiques sont les suivantes :

(1) Générer une paire de clés RSA :

$config = array(
    "digest_alg" => "sha512",
    "private_key_bits" => 4096,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
);
$res = openssl_pkey_new($config);  // 生成RSA密钥对
openssl_pkey_export($res, $privateKey);  // 导出私钥
$publicKey = openssl_pkey_get_details($res)['key'];  // 获取公钥

(2) Crypter les données :

$data = "敏感数据";
openssl_public_encrypt($data, $encrypted, $publicKey);  // 使用公钥加密数据

(3) Décrypter les données :

openssl_private_decrypt($encrypted, $decrypted, $privateKey);  // 使用私钥解密数据
  1. Utiliser l'algorithme de hachage
    L'algorithme de hachage est utilisé pour les données brutes sont converties en une chaîne de longueur fixe, généralement utilisée pour stocker des mots de passe ou vérifier l'intégrité des données. Les algorithmes de hachage couramment utilisés en PHP incluent MD5, SHA1 et SHA256. Les étapes spécifiques sont les suivantes :

(1) Calcul de hachage des données d'origine :

$data = "原始数据";
$hash = md5($data);  // 计算MD5哈希值
$hash = sha1($data);  // 计算SHA1哈希值
$hash = hash('sha256', $data);  // 计算SHA256哈希值

(2) Vérifiez la valeur de hachage :

$hash = "存储的哈希值";
if (md5($data) === $hash) {
    echo "哈希值一致";
} else {
    echo "哈希值不一致";
}

Résumé : PHP fournit une variété de cryptage et de décryptage lorsqu'il s'agit de méthodes de données sensibles , y compris les algorithmes de chiffrement symétriques, les algorithmes de chiffrement asymétriques et les algorithmes de hachage. Les développeurs peuvent choisir des algorithmes de chiffrement appropriés pour protéger la sécurité des données en fonction des besoins réels.

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