English | 简体中文 | 繁體中文
查询

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函数
分享链接