私を夢中にさせている問題があります。
次のことを行うキーのペアを作成しました。
$res = openssl_pkey_new(array('private_key_bits' => 2048));
/* Extract the private key from $res to $privKey */
openssl_pkey_export($res, $privKey);
/* Extract the public key from $res to $pubKey */
$pubKey = openssl_pkey_get_details($res);
$pubKey = $pubKey["key"];
このコードを使用する$pubKey
と、 と$privKey
.
正しく暗号化/復号化できますが、DECRYPTIONに関して大きな疑問があります。
現時点では、次のことを行ってデータを暗号化しています。
openssl_public_encrypt($data, $encrypted, $pubKey);
データは正しく暗号化されますが、PHP Doc を読むと、次のことがわかりました。
http://php.net/manual/en/function.openssl-public-decrypt.php
PUBLIC KEYを使用してデータを復号化できますか?? どうして ??
公開鍵がデータの ENCRYPT に役立つことは知っていますが、秘密鍵の所有者だけがデータを DECRYPT できます。
公開鍵を使用してデータを復号化できる場合は、公開鍵を知っているユーザーがメッセージを簡単に復号化できるようにします。
誰かが私にこれを説明できますか?最初のキーを ENCRYPT に、2 つ目 (2 つ目のみ) を DECRYPT に使用する方法を探しています。
ありがとう