可能是重复问题:
PHP密码的安全哈希和盐
警告:不要使用 MD5 用于密码,应该使用像 bcrypt 这样的替代方式。
对于我的密码,我是否应该像这样使用盐(盐将对每个用户进行唯一设置,并且不会直接与密码一起存储)...
$salt = sha1(md5("coders gonna code"));
$password = md5($salt.$password);
或者只使用以下内容是否可以:
$password = md5($password);
因为即使用户使用了简单密码如"password",我使用的盐值(在这种情况下)是"145ac26ff093c6e1317f7d5fb4c9fd11c77be975",所以他们的密码条目将是"145ac26ff093c6e1317f7d5fb4c9fd11c77be975password"。根据"http://howsecureismypassword.net/"的评估,这需要3千万亿年才能破解...那么您有何看法?或者我应该做得更糟,再加上""?$password = md5($salt.$password.md5($salt));
如果某个人已经成功获取了盐哈希值,是否还有任何方法能够阻止他继续深入?这更像是一个声明而不是密码。
对于那些建议我按用户来处理的人...我知道,这只是一个例子。
PBKDF2
代替对密码进行盐处理。 - Florentmd5
作为您的密码哈希算法,就算是SHA1也不会好到哪去。使用bcrypt
或者像Florent建议的那样,使用PBKDF2
。为什么呢?因为它的缓慢性和多个轮次可以确保攻击者必须投入大量资金和硬件才能够破解您的密码。 - Justin ᚅᚔᚈᚄᚒᚔ