【发布时间】:2015-03-09 22:02:37
【问题描述】:
我有一个 PHP 网站存储加密和加盐的用户密码。
使用的方法是crypt($password, $salt)。盐是随机生成的。
结果类似于
$2a$08$saltsaltsaltsaltsaltsaltsaHashHashHashHashHashHashHash
现在我必须使用与 PHP 不同的东西登录到这个数据库,例如。网。现在的问题:crypt() 在 .NET 中不存在。
我现在正在考虑在 .NET 中重写 crypt() 并从上面的密码哈希中提取盐。
公开用于散列密码的盐是否安全?还是我极度削弱了安全性?
【问题讨论】:
-
这里的“公开”是什么意思并不清楚——你总是需要知道盐才能检查密码,因为你用相同的盐加密用户输入的密码并检查结果与原始结果相同。
-
公开表示,例如将盐发送给任何要求它的人。然后,用户可以在本地计算机上重新创建自己的密码哈希。