【发布时间】:2014-06-09 14:25:05
【问题描述】:
我正在开发一个(尽量)超级安全的网站。我阅读了很多关于密码散列和使用盐的信息,但并不是所有事情对我来说都很清楚。我想将 sha-256 哈希算法与盐一起使用。我知道所有盐都应该是每个用户每个密码唯一的。
我想知道如果我也使用密码作为盐怎么办?使用 sha256 对密码进行哈希处理,然后使用其他算法对其进行哈希处理并将其用作盐。这样我就不必将盐存储在数据库中。这可能吗?还是我应该生成一个随机字符串?
【问题讨论】:
-
不,使用
password_hash- 这是使用 PHP 散列和加盐密码的标准方法。这样做的想法是散列算法故意很慢,并且不能并行化,而 SHA-256 可能太快了。如果你的散列算法很快,那么散列密码可以通过暴力搜索得到。 -
这不是同一个问题,但有一个很好的描述,谢谢。也许我不是很清楚。我也想以哈希形式使用我的密码作为盐。
-
您可以为我建议的算法提供盐。但是,将密码本身用作盐并不常见 - 盐是每个用户(例如他们的用户名)可以存储在用户表中未加密和未散列的东西。它旨在使破解密码的计算成本很高,因为必须为每个用户生成彩虹表。底线:由于我不是密码学家,我只会使用推荐的方法。