函式: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() 函式生成的簽名。
熱門工具排行榜