查詢

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函式
分享連結