是否可以将用户的盐保存在与密码哈希相同的表中?

daG*_*vis 10 passwords hash salt password-protection

它没关系并且没用吗?它可以保存在另一个表甚至另一个数据库中.

你怎么看?

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

Pis*_*3.0 23

是的,可以将每用户盐存储在存储密码哈希(而不是密码本身)的同一个表中- 即使攻击者可以访问原始数据库数据,他仍然需要尝试每个用户的盐+密码分开; 将salt存储在另一个表中实际上并没有添加任何重要的安全性(如果你认为攻击者可以访问数据库,那么我认为他只能访问它的一部分并没有多大意义).

如果您使用salt +花生+密码来创建密码哈希,那么我会说您的设计比80%的系统更安全 - 也就是说,相当安全而不会过度偏执.


但请注意,如果您实际上以可恢复的形式(加密或纯文本)存储密码,那么您将丢失任何安全性 - 盐和散列的全部内容是您不以可恢复的形式存储密码.如果您确实存储了密码,那么这是您系统中最薄弱的环节,这是完全不安全的.要明确:用户表应该只包含和花生+密码的哈希,而不是密码本身.

  • @Antony:他们很好地使用salt;)这是一种引用每个应用程序盐的方法,可能存储在应用程序服务器上(因此,如果数据库受到损害,部分盐仍然超出了攻击者的掌握范围).也被称为"胡椒",在同一个幽默的静脉. (3认同)