【发布时间】:2011-08-07 11:36:06
【问题描述】:
以下是加盐密码的好方法吗?
hash('sha256', $_POST['password'], $_POST['email'])
我将用户电子邮件用作盐。有些人不使用电子邮件,有些人说要使用随机数。
即使我使用随机数,我仍然需要将它存储在我的 MySQL 表中,所以盐仍然是已知的,并且使用电子邮件的额外好处是彩虹表的可能性大大降低,即使我要使用 16 位整数?
【问题讨论】:
-
另请注意,这不会像您期望的那样工作。
hash()的第三个参数是一个布尔值,表示原始输出。使用.将电子邮件附加到原始密码,或将函数名称更改为hash_hmac(这是我的建议)... -
你是什么意思?我完全不明白,哈哈:p
-
您将盐作为第三个参数传递给
hash。该参数不适用于盐。相反,可以使用hash_hmac函数(该函数设计用于在散列时以安全的方式组合两个字符串)。要了解我的意思,请尝试比较hash('sha256', 'foo', 'bar');和hash('sha256', 'foo')的输出。它们应该是一样的。