Maison >développement back-end >tutoriel php >Techniques de cryptage des données en PHP

Techniques de cryptage des données en PHP

WBOY
WBOYoriginal
2023-05-23 13:21:271000parcourir

PHP, en tant que langage de script côté serveur, est souvent utilisé pour gérer des données sensibles. Le cryptage des données est très important lors de la transmission ou du stockage de données sensibles. Cet article présentera les techniques de cryptage des données en PHP.

  1. Cryptage à l'aide d'une fonction de hachage

Une fonction de hachage est une fonction qui compresse un message de n'importe quelle longueur dans un résumé de longueur fixe. PHP possède des fonctions de hachage communes intégrées, telles que md5(), sha1(), etc.

Ce qui suit est un exemple de hachage du mot de passe à l'aide de SHA256 :

$password = 'password123'; 
$hashedPassword = hash('sha256', $password); //加密后的密码

L'avantage d'utiliser la fonction de hachage pour le cryptage est qu'une fois le mot de passe crypté, il ne peut pas être déchiffré retour En texte brut, cela ne peut être vérifié.

  1. Le cryptage symétrique

Le cryptage symétrique fait référence à une méthode de cryptage qui utilise la même clé pour le cryptage et le déchiffrement. L'implémentation du chiffrement symétrique en PHP peut utiliser l'extension openssl. Les fonctions de chiffrement symétrique incluent openssl_encrypt() et openssl_decrypt().

Ce qui suit est un exemple de code :

$data = "这是一段敏感内容";

$method = 'AES-256-CBC';
$key = md5('my_secret_key');
$iv = md5('my_iv');

//加密
$encrypted_data = openssl_encrypt($data, $method, $key, 0, $iv);

//解密
$decrypted_data = openssl_decrypt($encrypted_data, $method, $key, 0, $iv);

Dans cet exemple de code, l'algorithme AES-256-CBC est utilisé pour le cryptage. Parmi eux, la clé utilise l'algorithme de hachage md5 pour traiter "my_secret_key", et l'IV utilise l'algorithme de hachage md5 pour traiter "my_iv".

Il convient de noter que lorsque vous utilisez le cryptage symétrique, vous devez assurer la sécurité de la clé, sinon la clé pourrait être obtenue par des pirates et piratée.

  1. Cryptage asymétrique

Dans le cryptage asymétrique, différentes clés sont utilisées pour le cryptage et le déchiffrement. Le cryptage asymétrique peut être implémenté en PHP à l'aide de l'extension openssl. Les principales fonctions du chiffrement asymétrique sont openssl_public_encrypt(), openssl_private_decrypt(), openssl_private_encrypt() et openssl_public_decrypt().

Ce qui suit est un exemple de code :

$data = "这是一段敏感内容";

//生成密钥对
$config = array(
    "digest_alg" => "sha512",
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
);
$res = openssl_pkey_new($config);
openssl_pkey_export($res, $private_key);
$public_key = openssl_pkey_get_details($res);
$public_key = $public_key["key"];

//加密
openssl_public_encrypt($data, $encrypted, $public_key);

//解密
openssl_private_decrypt($encrypted, $decrypted, $private_key);

Dans cet exemple de code, une paire de clés publiques et privées RSA est d'abord générée, puis la clé publique est utilisée pour le cryptage, et la clé privée est utilisée pour le décryptage.

Il est à noter que dans le cryptage asymétrique, la clé privée doit être conservée correctement, sinon il y a un risque de fuite.

Pour résumer, les techniques de cryptage des données en PHP incluent le cryptage par fonction de hachage, le cryptage symétrique et le cryptage asymétrique. Dans les applications pratiques, nous devons choisir la méthode de cryptage appropriée en fonction de la situation spécifique et garantir la sécurité de la clé.

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