密码盐应该存储在数据库中自己的字段中吗?

The*_*Sky 5 database security passwords

我一直在做很多研究,以确定存储我正在开发的系统的密码的最佳实践.到目前为止,我已经决定使用带有RNG的SHA512哈希为每个密码生成一个盐(显然是针对Rainbow Tables等的最佳实践).

将密码存储在表中的两个单独字段中是否过于简单,无法确定数据库中的密码表示(有PasswordHash字段和PasswordSalt字段)?通过默默无闻看起来似乎是安全性,但我想将盐和密码哈希存储在一个连接在一起的字段中.

这会"帮助"吗?

Jör*_*son 5

这并不重要.盐不会泄露任何秘密,事实上,它有助于保守秘密.如果您想给数据库设计师朋友留下深刻印象,请将其保存在自己的字段中.如果你想给你的优化朋友留下深刻印象,请保留好哈希值.真的,这是一种风格问题.

关于盐; 你可能想要足够长的时间来防止彩虹表攻击:http://en.wikipedia.org/wiki/Rainbow_table#Defense_against_rainbow_tables


Noo*_*ilk 3

单独存放。

记住你要防范的是什么:这种情况是有人获得了你的数据库的副本,因此可以对字段执行彩虹表查找(如果没有加盐)。

攻击者是否知道盐并不重要;攻击者是否知道盐并不重要。这只是为了阻止他使用预先生成的彩虹表。