PHP8 hash_hmac

2024-03-01 09:27 更新

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_hmac — 使用 HMAC 方法生成帶有密鑰的散列值

說明

hash_hmac(
    string $algo,
    string $data,
    string $key,
    bool $binary = false
): string

參數 

algo

要使用的散列算法名稱,例如:“md5”、“sha256”、“haval160,4”等。如何獲取受支持的算法清單,請參見 hash_hmac_algos() 函數。

data

要進行散列運算的消息。

key

使用 HMAC 生成信息摘要時所使用的密鑰。

binary

設置為 true 輸出原始二進制數據,設置為 false 輸出小寫 16 進制字符串。

返回值 

如果 binary 設置為 true,則返回原始二進制數據表示的信息摘要,否則返回 16 進制小寫字符串格式表示的信息摘要。

錯誤/異常 

如果 algo 未知或非加密散列函數,則拋出 ValueError 異常。

更新日志 

版本說明
8.0.0如果 algo 未知或者非加密散列函數,現在將拋出 ValueError 異常;以前返回 false。
7.2.0不再支持非加密的散列函數(adler32、crc32、crc32b、fnv132、fnv1a32、fnv164、fnv1a64、joaat)。

示例 

示例 #1 hash_hmac() 示例

<?php
echo hash_hmac('sha256', 'The quick brown fox jumped over the lazy dog.', 'secret');
?>

以上示例會輸出:

9c5c42422b03f0ee32949920649445e417b2c634050833c5165704b825c2a53b

參見 

  • hash() - 生成散列值(消息摘要)
  • hash_hmac_algos() - 返回適用于 hash_hmac 的已注冊散列算法列表
  • hash_init() - 初始化增量散列運算上下文
  • hash_hmac_file() - 使用 HMAC 方法和給定文件的內容生成帶密鑰的散列值
  • hash_equals() - 可防止時序攻擊的字符串比較


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號