查询

sodium_crypto_auth()函数—用法及示例

「 生成消息的认证码(MAC) 」


函数名称:sodium_crypto_auth()

适用版本:PHP 7.2.0 及以上版本

函数描述:sodium_crypto_auth() 函数用于生成消息的认证码(MAC)。它使用Poly1305算法对消息进行身份验证,并返回一个128位的认证码。

语法:sodium_crypto_auth(string $message, string $key): string

参数:

  • $message:要进行身份验证的消息,必须是一个字符串。
  • $key:一个密钥,必须是一个长度为32字节的字符串。

返回值:返回一个128位的认证码,以字符串形式表示。

示例:

// 生成密钥
$key = random_bytes(SODIUM_CRYPTO_AUTH_KEYBYTES);

// 要进行身份验证的消息
$message = "This is a secret message.";

// 生成认证码
$authCode = sodium_crypto_auth($message, $key);

// 将认证码转换为十六进制表示
$hexAuthCode = bin2hex($authCode);

echo "认证码:".$hexAuthCode;

输出:

认证码:1a0e9b52a3d47a9e21b0e7c2b7a0a5f7

注意事项:

  • 密钥必须是一个长度为32字节的字符串,可以使用random_bytes()函数生成。
  • 认证码是一个128位的字符串,可以使用bin2hex()函数将其转换为十六进制表示。
  • 在进行身份验证时,验证方需要使用相同的密钥和消息来计算认证码,并将其与接收到的认证码进行比较,以确保消息的完整性和身份验证。
补充纠错
热门PHP函数
分享链接