Utilisation de la bibliothèque de fonctions de chiffrement et de décryptage PHP

王林
Libérer: 2023-06-16 10:52:02
original
1597 Les gens l'ont consulté

Utilisation de la bibliothèque de fonctions de cryptage et de décryptage PHP

Alors que les problèmes de sécurité des réseaux deviennent de plus en plus importants, le cryptage est devenu un élément indispensable de la technologie réseau moderne. En PHP, la bibliothèque de fonctions de chiffrement et de déchiffrement fournit de nombreuses fonctions de chiffrement et de déchiffrement, qui peuvent être utilisées pour traiter des informations sensibles et assurer la sécurité des données. Cet article présentera l'utilisation de la bibliothèque de fonctions de chiffrement et de décryptage PHP.

1. Fonctions de cryptage et de décryptage couramment utilisées

  1. Cryptage md5 :

Le cryptage md5 est une méthode de cryptage irréversible qui est souvent utilisée pour stocker les mots de passe et vérifier l'intégrité des fichiers. L'utilisation est très simple, par exemple :

$message = 'password';
$encrypted = md5($message);
Copier après la connexion
  1. chiffrement sha1 :

le cryptage sha1 est également une méthode de cryptage irréversible, et son utilisation est similaire au cryptage md5. Par exemple :

$message = 'password';
$encrypted = sha1($message);
Copier après la connexion
  1. cryptage base64 :

le cryptage base64 est une méthode de cryptage réversible adaptée au codage de données binaires au format de caractères ASCII. Par exemple :

$message = 'password';
$encrypted = base64_encode($message);
Copier après la connexion

le décryptage base64 peut utiliser la fonction base64_decode. Par exemple :

$encrypted = 'cGFzc3dvcmQ=';
$message = base64_decode($encrypted); 
Copier après la connexion
  1. Cryptage AES :

Le cryptage AES fournit une méthode de cryptage réversible qui peut être utilisée pour protéger la transmission et le stockage des données. L'utilisation est la suivante :

$message = 'password';
$key = 'mysecretkey';
$encrypted = openssl_encrypt($message, 'AES-256-CBC', $key);
Copier après la connexion

Où, 'AES-256-CBC' est l'algorithme de cryptage et $key est la clé. Le décryptage AES peut utiliser la fonction openssl_decrypt. Par exemple :

$encrypted = 'G0TzOGxUWSJ2XOGVTYaZDFtB26oTVPqsIiL0FmzNVcA=';
$key = 'mysecretkey';
$message = openssl_decrypt($encrypted, 'AES-256-CBC', $key);
Copier après la connexion
  1. Chiffrement RSA :

Le cryptage RSA fournit un moyen de cryptage par clé publique et de déchiffrement par clé privée, adapté aux scénarios de cryptage de données courants. L'utilisation est la suivante :

Générez d'abord la clé publique et la clé privée :

$privKey = openssl_pkey_new(array(
    'private_key_bits' => 1024,
    'private_key_type' => OPENSSL_KEYTYPE_RSA,
));

openssl_pkey_export($privKey, $pkey);

$pubKey = openssl_pkey_get_details($privKey);
$pubKey = $pubKey['key'];
Copier après la connexion

Utilisez ensuite la clé publique pour chiffrer :

$message = 'password';
$encrypted = '';
$success = openssl_public_encrypt($message, $encrypted, $pubKey);
Copier après la connexion

Le décryptage RSA peut utiliser la fonction openssl_private_decrypt. Par exemple :

$encrypted = '';
$message = '';
$success = openssl_private_decrypt($encrypted, $message, $privKey);
Copier après la connexion

2. Utilisation du module de cryptage et de décryptage

Dans les applications réelles, nous devrons peut-être utiliser un module de cryptage et de décryptage complet pour gérer la sécurité des données. En PHP, il existe d'excellents modules de cryptage et de décryptage, tels que mcrypt et sodium. Ce qui suit décrit comment utiliser ces deux modules.

  1. module mcrypt : 

le module mcrypt est un module de cryptage et de décryptage largement utilisé en PHP, fournissant une variété d'algorithmes de cryptage symétriques et d'algorithmes de cryptage asymétriques. L'utilisation est la suivante :

Définissez d'abord la clé et le vecteur d'initialisation :

$key = 'mysecretkey';
$iv = mcrypt_create_iv(
mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC),
MCRYPT_RAND);
Copier après la connexion

Utilisez ensuite la fonction mcrypt_encrypt pour chiffrer :

$message = 'password';
$encrypted = mcrypt_encrypt(
MCRYPT_RIJNDAEL_256,
$key,
$message,
MCRYPT_MODE_CBC,
$iv
);
Copier après la connexion

mcrypt Le décryptage peut utiliser la fonction mcrypt_decrypt. Par exemple :

$decrypted = mcrypt_decrypt(
MCRYPT_RIJNDAEL_256,
$key,
$encrypted,
MCRYPT_MODE_CBC,
$iv
);

$decrypted = rtrim($decrypted, "");
echo $decrypted;
Copier après la connexion
  1. module sodium :

module sodium est un module de cryptage et de décryptage introduit dans PHP7 et versions ultérieures. Il fournit de nombreuses fonctionnalités de cryptage avancées, telles que des fonctions de hachage de mot de passe et des algorithmes de signature numérique. L'utilisation est la suivante :

Générez d'abord la clé :

$key = sodium_crypto_secretbox_keygen();
Copier après la connexion

Utilisez ensuite la fonction sodium_crypto_secretbox pour chiffrer :

$message = 'password';
$nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES);
$encrypted = sodium_crypto_secretbox($message, $nonce, $key);
Copier après la connexion

le décryptage du sodium peut utiliser la fonction sodium_crypto_secretbox_open. Par exemple :

$decrypted = sodium_crypto_secretbox_open($encrypted, $nonce, $key);

if ($decrypted === false) {
    throw new Exception('Failed to decrypt message');
}

echo $decrypted;
Copier après la connexion

3. Résumé

Aujourd'hui, alors que la sécurité des réseaux est de plus en plus importante, le cryptage est devenu une technologie essentielle pour protéger la confidentialité des données. PHP fournit une multitude de bibliothèques et de modules de fonctions de cryptage et de décryptage. Les développeurs peuvent choisir la méthode de cryptage la plus appropriée en fonction des différents besoins pour garantir la sécurité des données. Grâce à l'introduction de cet article, je pense que les lecteurs maîtrisent l'utilisation de base de la bibliothèque de fonctions de chiffrement et de décryptage PHP et l'utilisation des modules de chiffrement et de décryptage couramment utilisés.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!