ホームページ  >  記事  >  バックエンド開発  >  php rsa暗号化・復号化の詳しい解説、rsa暗号化・復号化の詳しい解説_PHPチュートリアル

php rsa暗号化・復号化の詳しい解説、rsa暗号化・復号化の詳しい解説_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:09:38930ブラウズ

php rsa暗号化と復号化の使用の詳細、rsa暗号化と復号化の使用の詳細

1. 暗号化と復号化の最初のステップは、公開鍵と秘密鍵のペアを生成することです、秘密鍵で暗号化されたコンテンツは公開鍵で復号化できます

オープンソース RSA キー生成ツール openssl (通常、Linux システムにはこのプログラムが付属しています) をダウンロードし、別のフォルダーに解凍して、bin ディレクトリに入り、次のコマンドを実行します。

コードをコピーします コードは次のとおりです:
openssl genrsa -out rsa_private_key.pem 1024
openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out private_key.pem
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

最初のコマンドは元の RSA 秘密鍵ファイル rsa_private_key.pem を生成し、2 番目のコマンドは元の RSA 秘密鍵を pkcs8 形式に変換し、3 番目のコマンドは RSA 公開鍵 rsa_public_key.pem を生成します

上記から、対応する公開鍵は秘密鍵を介して生成できることがわかるので、サーバー側で秘密鍵private_key.pemを使用し、公開鍵はAndroidやiOSなどのフロントエンドに配布されます

2. phpで暗号化と復号化に生成された公開鍵と秘密鍵を使用し、コードを直接入力します

コードをコピーします コードは次のとおりです:
$fp=fopen("rsa/rsa_private_key.pem","r") //秘密鍵ファイルのパス
$private_key=fread($fp,8192);
fclose($fp);
$fp1=fopen("rsa/rsa_public_key.pem","r"); //公開鍵ファイルのパス
$public_key=fread($fp1,8192);
fclose($fp1);
// $private_key をエコーし​​ます。 $pi_key=openssl_pkey_get_private($private_key);//この関数は、秘密キーが利用可能かどうかを判断するために使用でき、リソース ID リソース ID を返すことができます
$pu_key=openssl_pkey_get_public($public_key );//この関数は、公開鍵が利用可能かどうかを判断するために使用できます
print_r($pi_key);echo "n"; echo "
";
print_r($pu_key);echo "n"; echo "
";
echo "
";
$data='php ras 暗号化アルゴリズム';
$encrypted = ""; $復号化 = ""; echo "暗号化されたソース データ:".$data."n"; echo "
";
echo "秘密キー暗号化:n";
openssl_private_encrypt($data,$encrypted,$pi_key);//秘密鍵暗号化
$encrypted =base64_encode($encrypted);//暗号化されたコンテンツには通常、特殊文字が含まれており、ネットワーク間で URL を介して送信する場合は、base64 エンコードが URL に安全であるかどうかに注意してください
echo '秘密キー暗号化後:'.$encrypted."n"; echo "
";echo "
";
echo "公開キーの復号化:n"; echo "
";
openssl_public_decrypt(base64_decode($encrypted),$decrypted,$pu_key);//秘密鍵で暗号化されたコンテンツは公開鍵で復号化できます
echo '公開鍵復号後:'.$decrypted."n"; echo "
";
echo "
";
echo "公開キー暗号化:n";
openssl_public_encrypt($data,$encrypted,$pu_key);//公開鍵暗号化
$encrypted =base64_encode($encrypted); echo $encrypted,"n"; echo "
";
echo "秘密キーの復号:n"; echo "
";
openssl_private_decrypt(base64_decode($encrypted),$decrypted,$pi_key);//秘密鍵の復号化
echo $decrypted,"n"; echo "
";




PHP の RSA 設定に関する FAQ
:
●PHP開発言語のコード例におけるopensslフォルダー内の3つのDLLファイルの使用

1. システムが Windows システムで、system32 ファイル ディレクトリに libeay32.dll および ssleay32.dll ファイルがない場合 次に、これら 2 つのファイルを system32 ファイル ディレクトリにコピーする必要があります。

2. phpのインストールディレクトリ(phpext)にphp_openssl.dllがない場合

次に、php_openssl.dllをこのフォルダーに配置してください

暗号化と復号化が好きな友人は、この記事を注意深く読んで、多くの利益を得る必要があります。 。 。

http://www.bkjia.com/PHPjc/942984.html

www.bkjia.com

本当http://www.bkjia.com/PHPjc/942984.html技術記事 php rsa暗号化と復号化の詳細な説明、rsa暗号化と復号化の詳細な説明 1. 暗号化と復号化の最初のステップは、公開キーと秘密キーのペアを生成することです 秘密キーで暗号化されたコンテンツは、公開キーで復号化できます。 (その逆も同様です...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。