为 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);