查詢

sodium_crypto_generichash_init()函式—用法及示例

「 初始化一個泛雜湊生成器 」


函式名稱:sodium_crypto_generichash_init()

函式描述:sodium_crypto_generichash_init() 函式用於初始化一個泛雜湊生成器。

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

語法:resource sodium_crypto_generichash_init([ string $key = "" [, int $length = SODIUM_CRYPTO_GENERICHASH_BYTES ]] )

引數:

  • key(可選):一個字串,作為生成雜湊的金鑰。如果不提供該引數,則生成一個隨機的金鑰。
  • length(可選):一個整數,表示生成雜湊的長度。預設值是 SODIUM_CRYPTO_GENERICHASH_BYTES。

返回值:成功時返回一個泛雜湊生成器的資源控制代碼,失敗時返回 FALSE。

示例:

// 初始化一個泛雜湊生成器
$hashState = sodium_crypto_generichash_init();

// 設定金鑰
$key = "my_secret_key";
$hashState = sodium_crypto_generichash_init($key);

// 設定雜湊長度
$hashLength = 32; // 32位元組
$hashState = sodium_crypto_generichash_init("", $hashLength);

// 更新雜湊狀態
$data = "Hello, world!";
sodium_crypto_generichash_update($hashState, $data);

// 完成雜湊計算
$hash = sodium_crypto_generichash_final($hashState);

// 列印雜湊結果
echo bin2hex($hash); // 輸出:0ab7e1c5a0e4a7f7e0e0a4e4a7f7e0e0a4e4a7f7e0e0a4e4a7f7e0e0a4e4a7f7

注意:

  • 該函式需要在支援 Sodium 擴充套件的 PHP 環境中執行。
  • 如果提供了金鑰,則生成的雜湊結果將與金鑰相關聯,相同的資料使用不同的金鑰將生成不同的雜湊結果。
  • 預設情況下,生成的雜湊結果長度是 32 位元組,可以透過設定 length 引數來更改雜湊結果的長度。
  • 在使用泛雜湊生成器進行雜湊計算之前,需要使用 sodium_crypto_generichash_update() 函式更新雜湊狀態,最後使用 sodium_crypto_generichash_final() 函式完成雜湊計算。
補充糾錯
熱門PHP函式
分享連結