PHP Conference Japan 2024

sodium_crypto_auth

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_auth计算消息的标签

描述

sodium_crypto_auth(字符串 $message, #[\SensitiveParameter] 字符串 $key): 字符串

通过 sodium_crypto_auth() 进行的对称消息身份验证提供完整性,但不提供机密性。

与数字签名(例如 sodium_crypto_sign_detached())不同,任何能够验证消息的方也能够验证他们自己的消息。(因此,对称身份验证。)

参数

message

您打算验证的消息

key

身份验证密钥

返回值

身份验证标签

添加注释

用户贡献的注释 1 条注释

craig at craigfrancis dot co dot uk
6 年前
以下是如何使用 sodium_crypto_auth() 的快速示例;其中您有一条要签名的消息,因此任何可以访问*共享*密钥的人都可以确认消息没有被篡改。

这类似于 sodium_crypto_sign_detached(),但签名者和验证者都能够访问相同的密钥。

<?php

$key
= sodium_crypto_auth_keygen();

//--------------------------------------------------
// 第一人,签名

$message = 'Hello';

$signature = sodium_crypto_auth($message, $key);

//--------------------------------------------------
// 第二人,验证

$message_valid = sodium_crypto_auth_verify($signature, $message, $key);

if (!
$message_valid) {
exit(
'消息已被更改。');
}

?>
To Top