为了账号安全,请及时绑定邮箱和手机立即绑定

加密您的密码:最佳实践?

/ 猿问

加密您的密码:最佳实践?

慕运维8079593 2019-07-16 15:36:52

加密您的密码:最佳实践?

我一直很好奇.。当将密码用于散列时,哪个更好:前缀,还是后缀?为什么?或者说,只要你有盐,这有关系吗?

解释:我们(希望)现在都知道我们应该食盐在散列以存储在数据库中之前的密码[编辑:这样你就可以避免杰夫·阿特伍德最近怎么了]。通常,这是通过在通过散列算法传递SALT之前将SALT与密码连接起来完成的。但例子各不相同.。一些示例在密码之前加上了SALT。一些例子加盐密码。我甚至见过一些人试图把盐放在中间。

那么哪种方法更好,为什么呢?有没有减少哈希冲突的方法?我在谷歌上的搜索结果并没有对这一问题做出恰当的分析。


查看完整描述

3 回答

?
慕仰1329654

前缀或后缀是不相关的,它只是在密码中添加一些熵和长度。

你应该考虑这三件事:

  1. 对于你存储的每个密码,盐必须是不同的。(这是一个相当常见的误解。)
  2. 使用加密安全的随机数生成器。
  3. 选一个足够长的盐。想想生日的问题。

有一个很棒的戴夫·斯英赫曼的回答另一个问题是,为什么您应该使用随机生成的盐类而不是用户名(或其他个人数据)。如果你遵循这些建议,你把盐放哪里并不重要。


查看完整回答
反对 回复 2019-07-16
?
慕斯王

真正的答案,似乎没有人触及,是两者都错了..如果您正在实现您自己的密码,无论您认为您正在做的是多么琐碎的部分,您犯错误。

HMAC这是一种更好的方法,但即使这样,如果您使用的是SHA-1,您已经选择了一种不适合密码哈希的算法,因为它的设计是为了提高速度。使用类似的东西bcrypt或者可能氪石把问题完全从你手里拿出来。

哦,甚至不要考虑将结果散列与编程语言或数据库字符串比较实用程序进行比较。它们按字符和短路进行比较。false如果一个字符不同。因此,现在攻击者可以使用统计方法来计算散列是什么,一次是一个字符。


查看完整回答
反对 回复 2019-07-16
  • 3 回答
  • 0 关注
  • 297 浏览
我要回答
慕课专栏
更多

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信