PHP hash_hkdf 哈希(Hash)函数
-
定义和用法
hash_hkdf - 生成提供的密钥输入的HKDF密钥派生 -
版本支持
PHP4 PHP5 PHP7 不支持 不支持 v7.1.2+支持 -
语法
hash_hkdf( string $algo , string $ikm [, int $length = 0 [, string $info = '' [, string $salt = '' ]]] )
hash_hkdf() 生成提供的密钥输入的HKDF密钥派生 -
参数
参数 必需的 描述 algo 是 所选哈希算法的名称(即“ sha256”,“ sha512”,“ haval160,4”等。)有关受支持算法的列表,请参见hash_algos()。 注意:不允许使用非加密哈希函数。 ikm 是 输入密钥资料(原始二进制)。 不能为空。 length 否 所需的输出长度(以字节为单位)。 不能大于所选哈希函数大小的255倍。如果length为0,则输出长度将默认为所选哈希函数的大小。 info 否 应用程序/特定于上下文的信息字符串。 salt 否 在推导过程中使用的盐。尽管可选,但添加无盐盐可以显着提高HKDF的强度。 -
返回值
返回一个字符串,其中包含派生密钥的原始二进制表示形式(也称为输出密钥材料-OKM); 或失败则为FALSE。如果ikm为空,算法未知/非加密,长度小于0或太大(大于哈希函数大小的255倍),则会引发E_WARNING。
-
示例
尝试一下// Generate a random key, and salt to strengthen it during derivation. $inputKey = random_bytes(32); $salt = random_bytes(16); // Derive a pair of separate keys, using the same input created above. $encryptionKey = hash_hkdf('sha256', $inputKey, 32, 'aes-256-encryption', $salt); $authenticationKey = hash_hkdf('sha256', $inputKey, 32, 'sha-256-authentication', $salt); var_dump($encryptionKey !== $authenticationKey); // bool(true)
-
相关页面
hash_pbkdf2() - 生成所提供密码的 PBKDF2 密钥导出