【PHP8.x】sodium_crypto_box_seal_open関数の使い方
sodium_crypto_box_seal_open関数は、匿名で暗号化されたメッセージを復号化する関数です。この関数は、PHPのSodium拡張機能の一部として提供されており、送信者の身元を隠しながら、特定の受信者のみがメッセージを読めるようにする「シーリング」と呼ばれる暗号化方式で作成されたデータを処理します。
具体的には、sodium_crypto_box_seal
関数によって暗号化されたメッセージを受け取り、受信者自身の秘密鍵と公開鍵のペアを使用して、そのメッセージを元の平文に戻す役割を担います。この方式の大きな特徴は、メッセージを暗号化した送信者が誰であるかを、受信者側が知ることができない匿名性にあります。
この関数を使用する際は、暗号化されたメッセージ本体($ciphertext
)、受信者自身の秘密鍵($secret_key
)、そして受信者自身の公開鍵($public_key
)の3つの情報を提供する必要があります。これらの鍵情報と暗号文が正しく一致した場合にのみ、安全にメッセージが復号されます。復号に成功すると、元のメッセージが文字列として返されますが、鍵が不一致であったり、暗号文が改ざんされているなどの理由で復号に失敗した場合はfalse
が返されます。
この機能は、メッセージの内容を第三者から保護しつつ、送信者の身元を匿名に保ちたい、といったプライバシーを重視した通信シナリオで活用されます。セキュリティを必要とするアプリケーション開発において、データ秘匿と匿名性を両立させる重要な手段の一つです。
基本的な使い方
構文(syntax)
1<?php 2 3$message = sodium_crypto_box_seal_open( 4 $ciphertext, 5 $recipient_public_key, 6 $recipient_secret_key 7);
引数(parameters)
string $ciphertext, string $key_pair
- string $ciphertext: 復号化する暗号化されたデータ(シール)
- string $key_pair: 復号化に使用する秘密鍵(公開鍵暗号化ペアの秘密鍵部分)
戻り値(return)
string|false
暗号化されたメッセージを復号し、元の文字列を返します。復号に失敗した場合は false を返します。