こんにちは、皆さん!今回は、PHPの暗号化ライブラリ「libsodium」で提供される crypto_box_seal_open()
関数について詳しく見ていきます。この関数は、crypto_box_seal()
で暗号化されたメッセージを復号するために使用されます。
crypto_box_seal_open() 関数とは?
crypto_box_seal_open()
関数は、受信者の秘密鍵を使用して、crypto_box_seal()
関数で暗号化されたメッセージを復号するための関数です。これにより、暗号化されたデータを元のメッセージに戻すことができます。
基本的な使い方
string sodium_crypto_box_seal_open(string $ciphertext, string $keypair)
- $ciphertext:
crypto_box_seal()
で暗号化されたメッセージ(暗号文)。 - $keypair: 受信者の秘密鍵と公開鍵のペア。この鍵ペアを使用してメッセージを復号します。
この関数は、復号されたメッセージ(平文)を返します。復号に失敗した場合は false
を返します。
例
- メッセージの復号
$keypair = sodium_crypto_box_keypair();
$public_key = sodium_crypto_box_publickey($keypair);
$secret_key = sodium_crypto_box_secretkey($keypair);
$message = "This is a top-secret message!";
$ciphertext = sodium_crypto_box_seal($message, $public_key);
$decrypted_message = sodium_crypto_box_seal_open($ciphertext, $keypair);
if ($decrypted_message === false) {
echo "復号に失敗しました。\n";
} else {
echo "復号されたメッセージ: " . $decrypted_message . "\n";
}
この例では、crypto_box_seal()
関数を使って暗号化されたメッセージを、crypto_box_seal_open()
関数で復号しています。成功すると、元のメッセージが表示されます。
利用シーン
- 安全なメッセージ受信: 暗号化されたメッセージを受信し、復号して元の内容を確認したい場合に使用します。
- データの検証: 受信した暗号文が正しいか、元のメッセージに戻せるかどうかを確認する際に役立ちます。
まとめ
crypto_box_seal_open()
関数は、公開鍵暗号方式を用いたメッセージの復号に不可欠な機能です。受信者だけが秘密鍵を使ってメッセージを復号できるため、非常に高いセキュリティを保つことができます。機密情報をやり取りするアプリケーションでぜひ活用してください。
次回もお楽しみに!Happy coding!