【发布时间】:2017-07-29 01:45:15
【问题描述】:
我想存储一个带有随机盐的散列密码。哈希值应该在两个不同的 sql 表中是唯一的。
salt 由随机字符和数字组成,密码和登录名中不允许使用斜线。
为了确保唯一性,我想附加一个分隔符和唯一的登录名。
示例(伪代码):
hash(salt + password + “/” + login)
这个想法是避免在两个不同的表中搜索唯一的随机盐。
如果我以这种方式构建存储的哈希值会不会更不安全?
【问题讨论】:
-
仅使用散列函数是不够的,仅添加盐对提高安全性无济于事。相反,iIterate over an HMAC with a random salt for about 100ms duration and save the salt with the hash.使用
PBKDF2、Rfc2898DeriveBytes、password_hash、Bcrypt等函数和类似函数。关键是让攻击者花费大量时间通过蛮力寻找密码。
标签: sql database security hash passwords