Hash 是否可以保存用户';s salt与密码哈希在同一个表中?

Hash 是否可以保存用户';s salt与密码哈希在同一个表中?,hash,passwords,password-protection,salt,Hash,Passwords,Password Protection,Salt,这行吗,不是没用吗?它可以保存在另一个表或甚至另一个数据库中 你觉得怎么样 另外,为了更高的安全性,我也有常盐“花生”。它是保存在配置文件(而不是数据库)中的常量值。因此,如果黑客想以某种方式破解密码,他还需要访问文件服务器和数据库。您需要存储1)每个用户的salt和2)哈希密码+salt的结果)。您不想存储密码本身。是的,可以将每个用户的salt存储在存储密码哈希的同一个表中(而不是密码本身))-即使对手可以访问原始数据库数据,他仍然需要分别尝试每个用户的salt+密码;将salt存储在另一个

这行吗,不是没用吗?它可以保存在另一个表或甚至另一个数据库中

你觉得怎么样


另外,为了更高的安全性,我也有常盐“花生”。它是保存在配置文件(而不是数据库)中的常量值。因此,如果黑客想以某种方式破解密码,他还需要访问文件服务器和数据库。

您需要存储1)每个用户的salt和2)哈希密码+salt的结果)。您不想存储密码本身。

是的,可以将每个用户的salt存储在存储密码哈希的同一个表中(而不是密码本身))-即使对手可以访问原始数据库数据,他仍然需要分别尝试每个用户的salt+密码;将salt存储在另一个表中并没有真正增加任何重要的安全性(如果您假设对手可以访问数据库,那么假设他只能访问数据库的一部分对我来说没有多大意义)

如果你使用salt+peanuts+password来创建密码散列,那么我会说你的设计比80%的系统更安全——也就是说,相当安全,而不会过分偏执



但是,请注意,如果您实际上是以可恢复的形式(加密或明文)存储密码,那么您就把任何安全性都抛到了窗外-salt和hash的全部意义在于,您没有以可恢复的形式存储密码。如果您确实存储了密码,那么这是系统中最薄弱的环节,这是完全不安全的。为了明确起见:用户表应该只包含salt+peanuts+password的salt散列,而不是密码本身。

您的平台没有一个像样的登录/安全实现吗?无论你们怎么想,重新发明这些东西都是有风险的。我用的是Kohana,有一个现成的模块。这更多是为了我自己的知识等等。你的意思是说,你有一个不断增加的盐“花生”?在这种情况下,它是有意义的(这是您接受的答案的解释)。@mgiuca的“peanuts”是指存储在文件服务器上的常量值。它是用密码和盐混合而成的。好吧,如果你不介意的话,我将编辑这个问题,将“密码”改为“恒定盐”,因为“花生”不是真正的密码。答案很好!谢谢你的“80%。]我有盐和土豆条,但是花生是什么?@Antony:它们和盐很配;)这是一种引用每个应用程序的salt的方法,可能存储在应用程序服务器上(因此,在数据库受损的情况下,部分salt仍然无法被攻击者掌握)。也叫“胡椒粉”,同样幽默。对不起,你没有回答我的问题=P我在问:“把用户的salt和密码保存在同一个表中可以吗?”@daGrevis-我的回答是,用密码存储密码根本不好,我的意思是散列密码(用SHA-1和salt和nuts)。@daGrevis-这对一个关于安全最佳实践的问题是一个非常重要的澄清:)的确!我编辑了问题标题,加入了“散列”一词,因为这显然是提问者的意图。