在SHA1中存储极其复杂的密码是否安全?

时间:2018-01-19 16:38:11

标签: api security session passwords token

使用SHA1散列极其复杂的密码(超过25个字符,任何ascii字符甚至二进制)是否安全?

实际上,密码代表一个tokenID,但我不想将它像这样存储在数据库中,我更喜欢将其哈希以获得更高的安全性。

密码(令牌)仅在14天内有效,我需要尽可能快地散列它(因此无法使用像bcrypt这样的东西)

密码(令牌)的理想长度是多少?

1 个答案:

答案 0 :(得分:0)

在一般情况下,没有。它可能是“复杂的”,但加密随机它可能不是。

最低限度是将RFC2104 HMAC与密钥(胡椒)一起使用;然而,一个更合适的替代方案,如果你绝对坚持,仍然会非常快,将使用PBKDF2-HMAC-SHA-256并忽略关于足够高的迭代计数的所有安全规则,即选择迭代计数10,而不是10,000。

对于密码/令牌哈希,当然,永远不会请求比本机哈希函数提供的更多字节的PBKDF2输出 - SHA-1为20,SHA-256为32,SHA-512为64。

我在my Github repository有几个PBKDF2的示例实现可能有所帮助,当然还有其他语言的其他实现。

使用加密随机的每个密码(每个令牌)盐。