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

PHP rsa 暗号化と復号化の例

WBOY
リリース: 2016-06-13 12:13:31
オリジナル
1427 人が閲覧しました

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

いいえ。1 つのコマンドは元の 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 = "";
$decrypted = "";

echo "暗号化されたソース データ: ".$data." n"; echo "
";
echo "秘密キーの暗号化:n"; echo "
";
openssl_private_encrypt($data,$encrypted,$pi_key);//秘密鍵暗号化
$encrypted =base64_encode($encrypted);//暗号化されたコンテンツには通常、特殊文字が含まれており、エンコード変換。ネットワーク間で URL を介して送信する場合は、base64 エンコードが URL に安全であるかどうかに注意してください。
echo ' 秘密キーが暗号化された後: '.$encrypted."n"; echo "
";echo "
";
echo "public key decrypt:n"; echo "
;";

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


" ;

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

openssl_public_encrypt($data,$encrypted,$pu_key);//公開鍵暗号化
$encrypted =base64_encode($encrypted);
echo $encrypted,"n"; echo "
";

echo "秘密鍵復号化:n"; br>gt;";
openssl_private_decrypt(base64_decode($encrypted),$decrypted,$pi_key);//秘密鍵の復号化
echo $decrypted,"n"; echo "
";

PHP の RSA 設定 FAQ:

●PHP 開発言語のコード例の openssl フォルダー

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

2. php インストールディレクトリ (phpext) に php_openssl.dll

がない場合は、このフォルダー

に php_openssl.dll を配置してください。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート