Maison > développement back-end > tutoriel php > PHP implémente la technologie de chiffrement asymétrique RSA

PHP implémente la technologie de chiffrement asymétrique RSA

WBOY
Libérer: 2023-06-18 09:36:01
original
3805 Les gens l'ont consulté

La technologie de cryptage asymétrique RSA est actuellement l’une des méthodes de cryptage les plus populaires et les plus sécurisées. En tant que langage de programmation largement utilisé, PHP présente également des avantages uniques dans la mise en œuvre du cryptage RSA. Cet article présentera aux lecteurs comment utiliser PHP pour implémenter la technologie de chiffrement asymétrique RSA.

1. Qu'est-ce que l'algorithme RSA

L'algorithme RSA est une technologie de cryptage asymétrique, généralement utilisée pour le cryptage des données et les signatures numériques. Sa sécurité repose principalement sur un problème de théorie des nombres, à savoir la difficulté de factoriser de très grands entiers en très peu de temps.

Le processus de cryptage de l'algorithme RSA est le suivant :

  1. Sélectionnez deux grands nombres premiers p et q et calculez leur produit n = p*q ;
  2. Calculez φ(n) = (p-1)*( q-1 );
  3. Choisissez un entier e pour que e et φ(n) soient premiers entre eux
  4. Calculez d pour que e et d satisfassent ed ≡ 1 (mod φ(n)); (n,e) , la clé privée est (n, d) ;
  5. Lors du cryptage des données, utilisez le e dans la clé publique pour chiffrer, et lors du déchiffrement des données, utilisez le d dans la clé privée pour déchiffrer.
  6. 2. Utilisez PHP pour implémenter l'algorithme RSA

Pour utiliser PHP pour implémenter l'algorithme RSA, nous devons utiliser deux bibliothèques tierces importantes : phpseclib et OpenSSL. Le premier est principalement utilisé pour le cryptage frontal et le second pour le décryptage en arrière-plan. L'utilisation de ces deux bibliothèques est présentée ci-dessous.

Bibliothèque phpseclib 2.1

phpseclib est une bibliothèque de classes de chiffrement et de déchiffrement implémentée en PHP. Elle prend en charge plusieurs algorithmes de chiffrement asymétriques, notamment RSA, DSA et ECDSA. Lorsque vous utilisez PHPSECLIB pour le cryptage RSA, nous devons effectuer les étapes suivantes:

introduce la bibliothèque PhPSeclib:
  1. require_once('Crypt/RSA.php');
    Copier après la connexion
Gengerener Public et Private Key en utilisant une clé privée :
  1. $rsa = new Crypt_RSA();
    $rsa->setPublicKeyFormat(CRYPT_RSA_PUBLIC_FORMAT_PKCS1);
    $rsa->setPrivateKeyFormat(CRYPT_RSA_PRIVATE_FORMAT_PKCS1);
    $keys = $rsa->createKey();
    file_put_contents('public_key.pem', $keys['publickey']);
    file_put_contents('private_key.pem', $keys['privatekey']);
    Copier après la connexion
  2. 2.2 Bibliothèque OpenSSL
    La bibliothèque OpenSSL est une bibliothèque open source qui contient des implémentations de divers algorithmes cryptographiques et protocoles SSL/TLS. En PHP, on peut utiliser cette bibliothèque en étendant la bibliothèque openssl. Voici les étapes pour mettre en œuvre le cryptage RSA à l'aide d'OpenSSL :
Générer un fichier de clé privée :
  1. $data = 'hello, world';
    $rsa = new Crypt_RSA();
    $rsa->loadKey(file_get_contents('public_key.pem'));
    $ciphertext = $rsa->encrypt($data);
    Copier après la connexion
Générer un fichier de clé publique :

$rsa = new Crypt_RSA();
$rsa->loadKey(file_get_contents('private_key.pem'));
$plaintext = $rsa->decrypt($ciphertext);
Copier après la connexion

Chiffrer à l'aide d'une clé publique :
  1. $config = array(
        "digest_alg" => "sha512",
        "private_key_bits" => 2048,
        "private_key_type" => OPENSSL_KEYTYPE_RSA,
    );
    $private_key = openssl_pkey_new($config);
    openssl_pkey_export_to_file($private_key, "private.key");
    Copier après la connexion
Décrypter à l'aide d'une clé privée :
  1. $public_key = openssl_pkey_get_details($private_key);
    $public_key = $public_key["key"];
    file_put_contents("public.key", $public_key);
    Copier après la connexion
  2. 3. Résumé
    L'utilisation de PHP pour implémenter la technologie de cryptage asymétrique RSA peut nous fournir une solution de transmission et de protection des données plus sécurisée et fiable. Cet article décrit les étapes d'implémentation de l'algorithme RSA à l'aide de phpseclib et de la bibliothèque OpenSSL. Les lecteurs peuvent choisir la bibliothèque appropriée à mettre en œuvre en fonction de leurs propres besoins. Lors de son utilisation, la sécurité de la clé privée doit être assurée afin d'éviter que les données ne soient illégalement falsifiées et volé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!

É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