函式名稱: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()函式將其轉換為十六進位制表示。
- 在進行身份驗證時,驗證方需要使用相同的金鑰和訊息來計算認證碼,並將其與接收到的認證碼進行比較,以確保訊息的完整性和身份驗證。