【发布时间】:2014-06-25 18:29:18
【问题描述】:
我读过很多文章,我们应该在散列之前为每个密码组合一个唯一的盐并将盐存储在数据库中以进行验证,但是使用密码本身作为盐怎么样?
这样做会有好处,因为盐对每个人来说都是独一无二的,而且它会被隐藏起来,因为它不会存储在任何地方。
上面我可以举一个简单的例子:
$hashToStore=sha1(strrev($password).$password);
上面我只是反转密码并将其用作盐(我将做一些更复杂的事情,然后只是在开发中反转它。)
这是存储密码的更好方法还是不好的做法。
PS:我完全了解 php 最新的内置函数,例如 crypt() 并在现实世界中使用它,但还想对上述内容进行评论。
【问题讨论】:
-
如果两个人有相同的密码,那么那个盐现在就不是唯一的了吧?
-
不,这很糟糕。不要这样做。盐应该是随机的。同样
sha1对密码散列也很糟糕。 -
@Dismissile
s/encrypted/hashed -
为了图灵的爱,请使用
PASSWORD_HASH!!
标签: php password-storage