如何在现有密码哈希值中加盐?

Bra*_*rke 12 migration security passwords salt

我有一个散列密码的数据库,在散列之前没有添加盐.我想在新密码中加盐.显然我无法重新哈希现有的哈希.

您将如何迁移到新的哈希系统?

Spe*_*ort 31

你当然可以.只需在现有哈希中添加一个盐并再次哈希即可.当然,这将要求任何未来的登录都要经过相同的过程,这意味着需要调用两个哈希函数,但是无论如何都要做很多合法的模式,所以它没有你想象的那么糟糕.

保存密码是为了防御彩虹表.在这种情况下,盐不需要是秘密.

http://en.wikipedia.org/wiki/Rainbow_tables#Defense_against_rainbow_tables

你可以在文章中看到

hash = MD5 (MD5 (password) . salt)
Run Code Online (Sandbox Code Playgroud)

这与您将使用的方法完全相同.(除了不同的散列函数.)

  • 盐不是秘密.实际上,您需要与每个用户一起保存它们(以纯文本格式). (3认同)

Joh*_*sch 14

作为快速修复,您可以在数据库中创建一个salt列,当用户正确匹配旧哈希时,您可以使用他们输入的密码并创建一个新哈希.