ホームページ  >  記事  >  バックエンド開発  >  php rsa 暗号化と復号化の例、rsa 暗号化と復号化の例_PHP チュートリアル

php rsa 暗号化と復号化の例、rsa 暗号化と復号化の例_PHP チュートリアル

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

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);

//echo $private_key;
$pi_key=openssl_pkey_get_private($private_key);//この関数は、秘密鍵が利用可能かどうかを判断するために使用でき、リソース 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 "private key encrypt:n"; echo "
";
openssl_private_encrypt($data,$encrypted,$pi_key);//秘密鍵暗号化
$encrypted =base64_encode($encrypted);//暗号化通常、次のコンテンツには特殊文字が含まれており、ネットワーク間で URL を送信する場合は、base64 エンコードが URL に安全であるかどうかに注意してください。 ;";エコー "
";

echo "public key decrypt:n"; echo "
";
openssl_public_decrypt(base64_decode($encrypted),$decrypted,$pu_key);//秘密鍵で暗号化されたコンテンツは公開鍵で復号化できる

echo ' 公開鍵の復号後: '.$decrypted."n"; echo "
";

echo "


";


echo "public key encrypt:n"; echo "
";

openssl_public_encrypt($data,$encrypted,$pu_key);//公開鍵暗号化

$encrypted =base64_encode($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/942279.html

www.bkjia.com

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