2017-04-25 46 views
0

我多年前使用java(spring)框架来散列密码并将它们存储在数据库中。但我不记得这个名字。用于数据库持久性的多算法密码哈希结构

的优点是,它不只是存储与盐等的散列值,但也对所使用的算法,并与像{'alg':'bcrypt', { 'salt':'dsjhjdsfh', 'iter':'356178372', ..}, 'hash':'ju3j7HJghkdfk'}

因此,它是可以改变算法的配置信息,以便新密码自动使用它们,旧密码可以使用旧算法自动验证,但验证成功后,用新算法更新。

这个框架是否仍然存在,因为我正在努力寻找,但没有运气。

回答

1

BCrypt的当前实现以这种方式存在。尽管它们不是以明文-JSON类结构存储的,您仍然可以更改算法或轮次数,并且旧哈希仍然能够正确验证。

请参阅此particular answer以了解如何生成BCrypt哈希,并将与其关联的元数据存储为单个字符串。

它已经出现在Spring framework或者你也可以把它作为一个单独的library。用法也很简单。

+0

谢谢,很高兴知道。据我所知,BCrypt是最先进的。还有PBKDF2,是SCrypt,我听说过Argon2。所以我想到的是一个框架,它围绕着这个框架,因为可能会有更好的框架。所以bcrypt结构对于bcrypt来说很好,但如果你想迁移到另一个,你又会失败。但也许这个框架已经消失了。 –