php rsa暗号化と復号化の詳しい説明_PHPチュートリアル

WBOY
リリース: 2016-07-13 10:01:39
オリジナル
817 人が閲覧しました

php 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 設定に関するよくある質問:
●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/971931.htmlwww.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/971931.html技術記事 php rsa 暗号化と復号化の使用の詳細な説明 1. 暗号化と復号化の最初のステップは、公開キーと秘密キーのペアを生成することです。秘密キーで暗号化されたコンテンツは、公開キーで復号化できます (逆も同様です)。オープンソースの RSA キー生成をダウンロードします...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!