RSA 非対称暗号化テクノロジは、現在最も一般的で安全な暗号化方式の 1 つです。広く使用されているプログラミング言語である PHP には、RSA 暗号化の実装において独自の利点もあります。この記事では、PHP を使用して RSA 非対称暗号化テクノロジを実装する方法を読者に紹介します。
1. RSA アルゴリズムとは
RSA アルゴリズムは非対称暗号化テクノロジであり、通常はデータの暗号化とデジタル署名に使用されます。そのセキュリティは主に数論の問題、つまり非常に大きな整数を非常に短時間で因数分解することの難しさに基づいています。
RSA アルゴリズムの暗号化プロセスは次のとおりです:
2. PHP を使用して RSA アルゴリズムを実装する
PHP を使用して RSA アルゴリズムを実装するには、phpseclib と OpenSSL という 2 つの重要なサードパーティ ライブラリを使用する必要があります。前者は主にフロントエンドの暗号化に使用され、後者はバックグラウンドの復号化に使用されます。これら 2 つのライブラリの使用方法を以下に紹介します。
2.1 phpseclib ライブラリ
phpseclib は、PHP で実装された暗号化および復号化クラス ライブラリであり、RSA、DSA、ECDSA などの複数の非対称暗号化アルゴリズムをサポートしています。 RSA 暗号化に phpseclib を使用する場合、次の手順を実行する必要があります:
require_once('Crypt/RSA.php');
$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']);
$data = 'hello, world'; $rsa = new Crypt_RSA(); $rsa->loadKey(file_get_contents('public_key.pem')); $ciphertext = $rsa->encrypt($data);
$rsa = new Crypt_RSA(); $rsa->loadKey(file_get_contents('private_key.pem')); $plaintext = $rsa->decrypt($ciphertext);
2.2 OpenSSL ライブラリ
OpenSSL ライブラリは、さまざまな暗号化アルゴリズムと SSL/TLS プロトコルの実装を含むオープン ソース ライブラリです。 PHP では、openssl ライブラリを拡張することでこのライブラリを使用できます。 OpenSSL を使用して RSA 暗号化を実装する手順は次のとおりです。
$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");
$public_key = openssl_pkey_get_details($private_key); $public_key = $public_key["key"]; file_put_contents("public.key", $public_key);
$data = 'hello, world'; openssl_public_encrypt($data, $ciphertext, $public_key);
openssl_private_decrypt($ciphertext, $plaintext, $private_key);
3. 概要
PHP を使用して RSA 非対称暗号化テクノロジを実装すると、より安全で信頼性の高いデータ送信および保護ソリューションが提供されます。この記事では、phpseclib と OpenSSL ライブラリを使用して RSA アルゴリズムを実装する手順について説明します。読者は、自分のニーズに応じて実装に適切なライブラリを選択できます。利用にあたっては、データの不正な改ざんや盗難を防ぐため、秘密鍵の安全性を確保する必要があります。
以上がPHP は RSA 非対称暗号化テクノロジーを実装していますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。