为用户密码哈希使用不同的盐Yii2

时间:2018-08-20 07:05:56

标签: yii2

我想为每个用户密码使用不同的盐,并且在用户表中有一个名为salt的列,但是我不怎么用自定义盐创建哈希以及如何验证具有yii2功能的密码。

我搜索了yii2文档,但发现了以下功能:

Yii::$app->getSecurity()->generatePasswordHash($password);
Yii::$app->getSecurity()->validatePassword($password, $hash);

这些函数独立于我的自定义盐,并且具有自己的哈希值。

我需要这样的东西:

$hash = createHash($password, $random_string_as_salt);
$validate = validateHash($password, $hash, $random_string_as_salt);

1 个答案:

答案 0 :(得分:1)

generatePasswordHash()已经在内部创建了带有盐的哈希(每个用户唯一)。您不需要为此单独的列。实际上,您甚至不应该尝试强行使用自己的密码散列-加密很难,并且使它比默认的Yii2实现更好的机会几乎为零。而且您会使情况变得更糟的风险非常高。

只需删除盐栏,然后仅使用一根密码即可-Yii2将以安全的方式处理它。

相关问题