当与额外的128位随机盐一起使用时,SHA1是否可以安全地使用散列密码?

J. *_*Doe 1 language-agnostic cryptography guid cryptographic-hash-function

在我们的网站上,我们使用random GUIDs作为salt来计算用户密码:

SHA1("mysecretpassword" + "a7841254-838a-45a0-8427-145e1d92287d")
Run Code Online (Sandbox Code Playgroud)

对于每个密码哈希,唯一的salt存储在数据库中.

我知道这SHA1不再是非常安全了,但考虑到我们添加了一个很长的随机盐,我几乎无法想象它可以被蛮力攻击或彩虹表破坏.

那么,这种方法目前是否可以加密安全存储密码哈希?

Nic*_*son 5

不,它不是,因为它的计算效率太高了.一个好的密码哈希函数很慢,因为这会使攻击者的生活变得更加困难.

从纯粹的加密POV开始,将盐与密码连接起来比使用适当的HMAC更不安全; 有关详细信息,请参阅Wikipedia HMAC文章.

不要尝试发明自己的密码散列系统,周围有很多好的,比如scryptpbkdf2.