openssl_pbkdf2

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

openssl_pbkdf2生成 PKCS5 v2 PBKDF2 字符串

描述

openssl_pbkdf2(
    #[\SensitiveParameter] string $password,
    string $salt,
    int $key_length,
    int $iterations,
    string $digest_algo = "sha1"
): string|false

openssl_pbkdf2() 计算 PBKDF2(基于密码的密钥派生函数 2),这是 PKCS5 v2 中定义的密钥派生函数。

参数

password

生成派生密钥的密码。

salt

PBKDF2 建议使用至少 64 位(8 字节)的加密盐。

key_length

所需输出密钥的长度。

iterations

所需的迭代次数。 » NIST 建议至少 10,000 次.

digest_algo

来自 openssl_get_md_methods() 的可选哈希或摘要算法。默认值为 SHA-1。

返回值

返回原始二进制字符串,或在失败时返回 false

示例

示例 #1 openssl_pbkdf2() 示例

<?php
$password
= 'password';
$salt = openssl_random_pseudo_bytes(16);
$keyLength = 20;
$iterations = 600000;
$generated_key = openssl_pbkdf2($password, $salt, $keyLength, $iterations, 'sha256');
echo
bin2hex($generated_key)."\n";
echo
base64_encode($generated_key)."\n";
?>

参见

添加注释

用户贡献的注释 1 条注释

McGlockenshire
10 年前
尽管手册声称此功能在 PHP 5.5 及更高版本中可用,但此功能在我的本地安装中不可用。

我预计安装了过时的 OpenSSL 库版本可能是罪魁祸首。

如果您使用的是 PHP 5.5 并且在您的 OpenSSL 扩展中没有此功能可用,请改用功能等效的 hash_pbkdf2 函数。
To Top