crypto_sign_verify_detached()
は、デジタル署名を検証するために使用されるPHPのLibsodium関数です。この関数を使えば、あるメッセージが正当な送信者によって署名されているかどうかを確認できます。具体的には、署名と元のメッセージ、そして公開鍵を使って署名が正しいかどうかをチェックします。
関数の構文
bool crypto_sign_verify_detached(string $signature, string $message, string $publickey);
signature
: 検証したい署名。message
: 元のメッセージ。publickey
: 署名を作成した際に使用した公開鍵。
この関数は、署名が正しい場合にはtrue
を返し、署名が不正な場合にはfalse
を返します。
使い方の例
次に、crypto_sign_verify_detached()
を使ってメッセージの署名を検証する例を見てみましょう。
// 公開鍵と署名
$publicKey = sodium_crypto_sign_publickey($keypair);
$signature = sodium_crypto_sign_detached($message, $secretKey);
// メッセージが改ざんされていないか確認する
if (sodium_crypto_sign_verify_detached($signature, $message, $publicKey)) {
echo "署名が正当です。";
} else {
echo "署名が不正です。";
}