ホームページ >バックエンド開発 >PHPチュートリアル >php rsa 暗号化と復号化の例、rsa 暗号化と復号化の例_PHP チュートリアル
オープンソース RSA キー生成ツール openssl (通常、Linux システムにはこのプログラムが付属しています) をダウンロードし、別のフォルダーに解凍して、bin ディレクトリに入り、次のコマンドを実行します。
openssl genrsa -out rsa_private_key.pem 1024openssl 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
上記からわかるように、対応する秘密鍵を公開鍵として生成できるので、サーバー側では秘密鍵private_key.pemを使用し、公開鍵はandroidやiosなどのフロントエンドに配布されます
2. 生成された公開鍵と秘密鍵をphpで暗号化と復号化に使用し、コードを直接アップロードします
$private_key=fread($fp,8192);
fclose($fp);
$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($pu_key); echo "n"; echo "
";
echo "
$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 "
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:
次に、これら 2 つのファイルを system32 ファイル ディレクトリにコピーする必要があります。
2. phpのインストールディレクトリ(phpext)にphp_openssl.dllがない場合
次に、php_openssl.dllをこのフォルダーに入れてください
www.bkjia.com