查詢

sodium_crypto_sign_open()函式—用法及示例

「 驗證由 sodium_crypto_sign_detached() 函式生成的數字簽名,並返回原始訊息 」


函式:sodium_crypto_sign_open()

適用版本:PHP 7.2.0 及以上

用法:sodium_crypto_sign_open() 函式用於驗證由 sodium_crypto_sign_detached() 函式生成的數字簽名,並返回原始訊息。

語法:sodium_crypto_sign_open(string $signature, string $public_key) : string|bool

引數:

  • $signature: 必需,一個已簽名的訊息,作為二進位制字串。
  • $public_key: 必需,驗證簽名所使用的公鑰,作為二進位制字串。

返回值:

  • 如果驗證成功,則返回原始訊息(作為二進位制字串)。
  • 如果驗證失敗,則返回 false。

示例:

// 公鑰和簽名的二進位制字串 $publicKey = hex2bin('4a9d9b9d9e8e54d1e2a3f4a9d9b9d9e8e54d1e2a3f4a9d9b9d9e8e54d1e2a3f'); $signature = hex2bin('4a9d9b9d9e8e54d1e2a3f4a9d9b9d9e8e54d1e2a3f4a9d9b9d9e8e54d1e2a3f');

// 需要驗證的訊息 $message = "Hello, world!";

// 驗證簽名並返回原始訊息 $originalMessage = sodium_crypto_sign_open($signature, $publicKey);

if ($originalMessage !== false) { echo "訊息驗證成功:". $originalMessage; } else { echo "訊息驗證失敗!"; }

注意事項:

  • 在使用 sodium_crypto_sign_open() 函式之前,必須先載入 sodium 擴充套件。
  • $public_key 必須是由 sodium_crypto_sign_publickey_from_secretkey() 函式生成的公鑰。
  • $signature 必須是由 sodium_crypto_sign_detached() 函式生成的簽名。
補充糾錯
熱門PHP函式
分享連結