Maison  >  Article  >  développement back-end  >  Comment effectuer des opérations de cryptage et de décryptage de base à l'aide de PHP

Comment effectuer des opérations de cryptage et de décryptage de base à l'aide de PHP

PHPz
PHPzoriginal
2023-06-22 14:09:381347parcourir

Dans l'environnement Internet moderne, la confidentialité des données est devenue l'un des facteurs les plus importants. C’est pour cette raison que diverses technologies de cryptage ont également été largement utilisées. Dans le développement Web, le langage PHP est devenu un langage de programmation très populaire en raison de sa facilité d’utilisation et de son efficacité. Par conséquent, il est très pratique et nécessaire de comprendre comment utiliser PHP pour effectuer des opérations de base de chiffrement et de décryptage. Cet article fournira quelques solutions de base à ce problème.

1. Qu'est-ce que la technologie de cryptage ?

La technologie de cryptage fait référence au processus consistant à effectuer certaines opérations spéciales et à traiter les données pour les rendre illisibles (ou difficiles à lire). Le cryptage peut protéger efficacement la sécurité des données et éviter les fuites de données et les falsifications malveillantes. Les opérations de chiffrement comprennent généralement les étapes suivantes : saisie des données, traitement de l'algorithme de chiffrement, génération de clé, sortie du texte chiffré, etc.

2. Technologie de cryptage couramment utilisée en PHP

  1. md5 :

MD5 est un algorithme de cryptage, correspondant à PHP des fonctions sont également fournies pour effectuer des opérations de cryptage MD5. Par exemple :

$password = '123456';
$encrypted_password = md5($password);
  1. sha1 :

Similaire à MD5, sha1 est également un algorithme de chiffrement courant. L'utilisation est également très simple, par exemple :

$password = '123456';
$encrypted_password = sha1($password);
  1. base64 :

Base64 est une méthode d'encodage qui convertit les données binaires en caractères ASCII. Couramment utilisé pour transmettre des données binaires dans des protocoles texte. PHP fournit également les fonctions correspondantes pour effectuer des opérations de cryptage et de déchiffrement Base64. Par exemple :

$str = 'Hello, world!';
$encoded_str = base64_encode($str);    // 进行Base64编码
$decoded_str = base64_decode($encoded_str);    // 进行Base64解码

3. Comment utiliser PHP pour les opérations de cryptage et de décryptage

Bien que les technologies de cryptage ci-dessus puissent protéger la sécurité des données, elles sont toutes un cryptage à sens unique En d’autres termes, une fois les données cryptées, il est difficile de les restaurer. Dans certains scénarios, il est nécessaire d'utiliser une méthode de chiffrement bidirectionnel, c'est-à-dire une méthode capable de chiffrer et de déchiffrer, comme le chiffrement du mot de passe d'un utilisateur.

  1. Cryptage symétrique :

La méthode de cryptage symétrique fait référence à l'utilisation de la même clé pour les opérations de cryptage et de décryptage. Client et serveur simultanément. En PHP, la bibliothèque d'extension openssl prend en charge le chiffrement symétrique. Par exemple :

$data = 'Hello, world!';
$key = '123456';
$method = 'AES-256-CBC';

// 加密
$iv = openssl_random_pseudo_bytes(16);
$ciphertext = openssl_encrypt($data, $method, $key, OPENSSL_RAW_DATA, $iv);

// 解密
$plaintext = openssl_decrypt($ciphertext, $method, $key, OPENSSL_RAW_DATA, $iv);

L'algorithme AES-256-CBC est utilisé pour les opérations de cryptage et de décryptage, et un IV de 16 octets (vecteur d'initialisation) généré aléatoirement est utilisé pour renforcer la force de cryptage. Il convient de noter que le IV doit également être transmis avec la transmission des données afin d'effectuer l'opération de décryptage.

  1. Cryptage asymétrique :

La méthode de cryptage asymétrique fait référence à l'utilisation d'une paire de clés, appelées clé publique et clé privée, pour effectuer le cryptage. et les opérations de décryptage. La clé publique peut être rendue publique et est utilisée pour chiffrer les données, tandis que la clé privée n'est connue que de vous et est utilisée pour déchiffrer les données. En PHP, les fonctions openssl correspondantes sont également fournies pour effectuer des opérations de chiffrement asymétrique. Par exemple :

$data = 'Hello, world!';
$keypair = openssl_pkey_new();    // 生成密钥对
openssl_pkey_export($keypair, $private_key);    // 导出私钥
$pub_key = openssl_pkey_get_details($keypair)["key"];    // 导出公钥

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

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

Une nouvelle paire de clés est générée ici, en utilisant la clé publique pour le chiffrement lors du chiffrement des données et la clé privée pour le déchiffrement lors du décryptage des données.

En bref, PHP fournit une prise en charge riche et pratique pour les opérations de chiffrement et de décryptage dans le développement Web, et il existe également de nombreuses bibliothèques d'extensions puissantes (telles que openssl) qui peuvent aider les développeurs à mettre en œuvre facilement le chiffrement et le décryptage. fonction. Cependant, il convient de noter que les différentes méthodes et algorithmes de chiffrement présentent des caractéristiques, des avantages et des inconvénients différents, et les développeurs doivent choisir la méthode de chiffrement appropriée en fonction de scénarios d'application spécifiques.

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
Article précédent:Comment protéger PHPArticle suivant:Comment protéger PHP