いくつか知りたい
- openssl_public_encrypt()およびopenssl_private_encrypt()関数の出力は何ですか?
- 上記の関数(暗号化されたデータ)の出力、それはWebセーフですか?
- 生成された暗号化データをWebサイト間で転送するにはどうすればよいですか?
いくつか知りたい
openssl_public_encrypt()
公開鍵でメッセージを暗号化し、対応する秘密鍵だけがメッセージを復号化できるようにします。これは、情報が見られるべきでない人に見られないように保護するために使用されます。
openssl_private_encrypt()
秘密鍵でメッセージを暗号化し、対応する公開鍵を持っている人なら誰でも復号化できるようにします。これは、不要な目から情報を保護するために使用されるのではなく、データが変更されていないことを確認するためにデジタル署名を作成するために使用されます。通常、この関数は使用しないでください。openssl_sign()
代わりにandを使用しopenssl_verify()
ます。
通常、暗号化と署名は一緒に使用されます。データを取得openssl_sign()
し、自分の秘密鍵で ( を使用して)署名openssl_public_encrypt()
し、受信者の公開鍵で ( を使用して) 暗号化します。署名と暗号化されたメッセージの両方を受信者に送信すると、受信者はopenssl_private_decrypt()
自分の秘密鍵で ( を使用して) メッセージを復号化し、公開鍵で ( を使用して) 署名を検証できopenssl_verify()
ます。これにより、送信中にメッセージを読み取ったり、改ざんしたりすることができなくなります。これは、おそらく「Web セーフ」と呼ばれるものです。
ウェブサイト間のデータ転送に関しては、好きな方法で行うことができます。HTTP、FTP、電子メール、API 呼び出しなど。暗号化と署名の要点は、メッセージを安全に転送するために特別な手段を使用する必要がないということです。