[PHP]crypto_sign_verify_detached()関数を使った署名検証の実装ガイ

PHP

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 "署名が不正です。";
}

まとめcrypto_sign_verify_detached()を使うことで、安全な署名検証が可能になります。特に、信頼性の高い通信やデータの整合性を保証する場面で役立ちます。

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