我有一个散列密码数据库,在散列之前没有添加盐。我想在新密码中加盐。显然我不能重新散列现有的。
您将如何迁移到新的哈希系统?
最佳答案
当然可以。只需在现有散列中添加盐并再次散列即可。当然,这将需要任何 future 的登录经历相同的过程,这意味着需要调用两个散列函数,但许多合法模式无论如何都会这样做,因此它不会像您想象的那么糟糕。
对密码加盐是为了抵御彩虹表。在这种情况下,盐不需要是 secret 。
http://en.wikipedia.org/wiki/Rainbow_tables#Defense_against_rainbow_tables
你实际上可以在文章中看到
hash = MD5 (MD5 (password) . salt)
这与您将使用的方法完全相同。 (除了不同的散列函数。)
关于security - 您将如何将盐添加到现有的密码哈希中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1201685/