查询

sodium_crypto_sign_detached()函数—用法及示例

「 使用私钥对消息进行数字签名,并返回签名的消息摘要 」


函数名称: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() 函数时,确保私钥的安全存储和传输,以防止私钥泄露,避免数字签名被伪造。
补充纠错
热门PHP函数
分享链接