2017-01-18 7 views
0

私はいくつかの暗号化に取り組んでいます。今まで私は秘密鍵で暗号化された値を解読するために公開鍵が必要だと仮定していました。同じ秘密鍵を使用して暗号化と復号化を行いますか?

これは、同じ鍵でopenssl_private_encrypt()openssl_private_decrypt()が使用されていたことがわかりました。

ここで少し混乱しています。あなたは、秘密鍵で暗号化された後、再び値を解読するために公開鍵を通常必要としませんか?これは、asymmetric encryption全体の意味ではありませんか?

PHPコンテキストでは、これらの種類のトピックに関する信頼できる情報を見つけるのが難しいので、誰かがこれについて少し詳しく教えてくれることを願っています。

読んでいただきありがとうございます。

答えて

2

秘密鍵で暗号化したものを公開鍵で復号化する場合、唯一確かなのはあなたが送信者だということです。

公開鍵で暗号化したものを秘密鍵で復号化するには、受信者だけが公開鍵を開くことができます。

秘密鍵と他の人の公開鍵で暗号化すると、秘密鍵と公開鍵を使用して相手を復号化できます。

だから秘密鍵で暗号化と復号化を行うことができます。

+0

しかし、 'openssl_private_encrypt()'と 'openssl_public_decrypt()'を逆にすることはPHPではうまくいきません。これは完全に真実ではありませんか? –

+0

@ Stephan-v:https://secure.php.net/manual/en/function.openssl-public-decrypt.php "openssl_public_decrypt()'は以前openssl_private_encrypt()で暗号化されたデータを復号化し、結果は解読されました。 – Blaatpraat

+0

私は 'openssl_private_encrypt()'と 'openssl_private_decrypt()'を意味していません。 –

関連する問題