为 password_hash() 设置盐
Setting a salt for password_hash()
我正在 PHP 中为 owncloud
创建大量用户导入脚本。我从 CSV 文件中读取用户,然后将它们添加到 owncloud database
。不过我的密码有问题。据我所知,owncloud 使用 password_hash()
和 BCRYPT
。我有 passwordsalt
,但我不确定如何将盐与 password_hash()
一起使用。
大家有什么帮助吗?
像这样在选项数组中使用盐
password_hash("rasmuslerdorf", PASSWORD_BCRYPT, array("cost" => 7, "salt" => "thisisyoursalt"));
但是使用自己的盐并不是一个好主意。让 password_hash()
为您的密码创建盐。 password_hash()
将为每个密码创建不同的盐。它将增加您的密码安全强度。
如果散列是由 password_hash()
或 crypt()
生成的,则盐会包含在生成的散列值中。要根据此哈希检查密码,您可以使用函数 password_verify(),此函数会自动提取盐和其他参数。
// Check if the hash of the entered login password, matches the stored hash.
// The salt and the cost factor will be extracted from $existingHashFromDb.
$isPasswordCorrect = password_verify($password, $existingHashFromDb);
我正在 PHP 中为 owncloud
创建大量用户导入脚本。我从 CSV 文件中读取用户,然后将它们添加到 owncloud database
。不过我的密码有问题。据我所知,owncloud 使用 password_hash()
和 BCRYPT
。我有 passwordsalt
,但我不确定如何将盐与 password_hash()
一起使用。
大家有什么帮助吗?
像这样在选项数组中使用盐
password_hash("rasmuslerdorf", PASSWORD_BCRYPT, array("cost" => 7, "salt" => "thisisyoursalt"));
但是使用自己的盐并不是一个好主意。让 password_hash()
为您的密码创建盐。 password_hash()
将为每个密码创建不同的盐。它将增加您的密码安全强度。
如果散列是由 password_hash()
或 crypt()
生成的,则盐会包含在生成的散列值中。要根据此哈希检查密码,您可以使用函数 password_verify(),此函数会自动提取盐和其他参数。
// Check if the hash of the entered login password, matches the stored hash.
// The salt and the cost factor will be extracted from $existingHashFromDb.
$isPasswordCorrect = password_verify($password, $existingHashFromDb);