函式名稱:sodium_crypto_sign_detached()
函式描述:sodium_crypto_sign_detached() 函式使用私鑰對訊息進行數字簽名,並返回簽名的訊息摘要。
適用版本:PHP 7.2.0 及以上版本
用法:
string sodium_crypto_sign_detached ( string $message , string $secret_key )
引數:
- $message:要簽名的訊息,型別為字串。
- $secret_key:用於簽名的私鑰,型別為字串。
返回值:
- 返回一個訊息摘要的字串,長度為64位元組。
示例:
// 生成公鑰和私鑰對
$keyPair = sodium_crypto_sign_keypair();
// 獲取私鑰
$secretKey = sodium_crypto_sign_secretkey($keyPair);
// 獲取公鑰
$publicKey = sodium_crypto_sign_publickey($keyPair);
// 要簽名的訊息
$message = "Hello, World!";
// 使用私鑰對訊息進行簽名
$signature = sodium_crypto_sign_detached($message, $secretKey);
// 驗證簽名的有效性
if (sodium_crypto_sign_verify_detached($signature, $message, $publicKey)) {
echo "簽名有效";
} else {
echo "簽名無效";
}
注意事項:
- sodium_crypto_sign_detached() 函式使用私鑰對訊息進行簽名,並返回簽名的訊息摘要。簽名後的訊息摘要可以與原始訊息一起傳輸,並透過 sodium_crypto_sign_verify_detached() 函式進行驗證。
- 私鑰和公鑰可以使用 sodium_crypto_sign_keypair() 函式生成。
- 在驗證簽名時,需要使用公鑰和原始訊息。如果驗證成功,返回 true;否則,返回 false。
- sodium_crypto_sign_detached() 函式返回的訊息摘要長度固定為64位元組,可以透過 sodium_crypto_sign_BYTES 引數獲取。
- sodium_crypto_sign_detached() 函式僅支援 Ed25519 簽名演算法。
- 在使用 sodium_crypto_sign_detached() 函式時,確保私鑰的安全儲存和傳輸,以防止私鑰洩露,避免數字簽名被偽造。
熱門工具排行榜