ホームページ  >  記事  >  バックエンド開発  >  PHPのpki暗号化技術(openssl)の詳しい解説_PHPチュートリアル

PHPのpki暗号化技術(openssl)の詳しい解説_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:01:42935ブラウズ

コードをコピーします コードは次のとおりです:

//pki暗号化
//pki暗号化を使用するには、openssl拡張機能を開く必要があります
//php.ini拡張子 = php_openssl.dll extension
/*pki モードは
* 公開鍵暗号化、秘密鍵復号化
* 秘密鍵暗号化、公開鍵復号化
*/
//秘密鍵暗号化、公開鍵復号化
//Client
//$data; data
$data = 'abcd';
//秘密鍵を取得 $priv_key_id
$priv_key_id = openssl_get_privatekey(file_get_contents('99bill-rsa.pem', r));
//公開鍵を取得 $pub_key_id
$pub_key_id = openssl_get_publickey(file_get_contents('99bill -rsa.cer', r));
//$data は最初に SHA1 ハッシュで暗号化され、次に $priv_key_id 秘密鍵で暗号化されて署名が生成されます $signature
//$signature は暗号化されたものですSignature
//openssl_sign() 暗号化関数、その復号化方法はわかりません。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
openssl_sign($data, $signature, $priv_key_id, OPENSSL_ALGO_SHA1);
//また、2 つの暗号化関数があり、これら 2 つの暗号化関数には復号化メソッドがあることを知っておいてください
//最初の関数: 秘密鍵暗号化、公開鍵復号化
//$data は暗号化されるデータ、$crypted は暗号化によって生成されたデータ、$decrypted は復号化によって生成されたデータです。$data と $decrypted は同じ値です。
//$priv_key_id 秘密鍵によって暗号化されます。 $crypted を生成します;
openssl_private_encrypt($data, $crypted, $priv_key_id);
echo $crypted;
//$pub_key_id 公開鍵を使用して復号し、$decrypted を生成します
openssl_public_decrypt($crypted, $decrypted, $pub_key_id);
//2 番目のタイプ: 公開鍵暗号化、秘密鍵復号化
//$data は暗号化されるデータ、$crypted は暗号化によって生成されたデータ、$decrypted は $data と $decrypted によって生成されたデータです。同じ値を持つ
//$pub_key_id を介した公開キー暗号化、$crypted を生成;
openssl_public_encrypt($data, $crypted, $pub_key_id);
//$priv_key_id 秘密キーを介して復号化し、$decrypted を生成
openssl_private_decrypt($crypted, $decrypted, $priv_key_id);
//注意事項、ここで公開鍵を取得するためのファイルと秘密鍵を取得するためのファイルは対応していません
//通常、公開鍵と秘密鍵を取得するためのファイルは 1 対 1 になっています。ここではKuaiqianを使用します。
//Kuaiqian が秘密鍵生成ファイルを提供し、対応する公開鍵生成ファイルが Kuaiqian 側にあります
//Kuaiqian が公開鍵生成ファイルを提供し、対応する秘密鍵生成ファイルが Kuaiqian 側にあります
//また、公開鍵生成ファイルと秘密鍵生成ファイルがありません
//1 対 1 で対応する秘密鍵と公開鍵生成ファイルが見つかりませんでした。見つけたら、コピーを送ってください。
// openssl_verify() メソッドは、署名が正しいかどうかを検証します (秘密キー暗号化によって生成されたデータが返され、対応する公開キーで検証されます)。
// $signature 公開鍵暗号化によって生成されたデータ、$data の元のデータは、成功した場合は 1、失敗した場合は 0、エラーの場合は -1 を返します
// $pub_key_id 公開鍵
openssl_verify($data, $signature, $pub_key_id );
//メモリから秘密鍵または公開鍵を解放します
openssl_free_key($priv_key_id);
openssl_free_key($pub_key_id);

秘密鍵と公開鍵を生成します
genrsa -out private-rsa.pem
rsa - private-rsa.pem -pubout -out public-rsa.cer

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327971.html技術記事次のようにコードをコピーします: ?php //pki 暗号化//pki 暗号化を使用するには、openssl 拡張機能を開く必要があります //php.ini 拡張子 = php_openssl.dll 拡張子/*pki モードは* 公開キー暗号化、秘密キー復号化;...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。