PHPの crypto_box_seal_open() 関数について解説!

PHP

こんにちは、皆さん!今回は、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 を返します。

  1. メッセージの復号
$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!

タイトルとURLをコピーしました