用于数据库持久性的多算法密码哈希结构

时间:2017-04-25 12:31:13

标签: java algorithm security hash passwords

我多年前使用java(spring)框架来散列密码并将它们存储在数据库中。但我无法记住这个名字。

优点是,它不仅仅使用盐等存储散列值,而且还包含有关所用算法和{'alg':'bcrypt', { 'salt':'dsjhjdsfh', 'iter':'356178372', ..}, 'hash':'ju3j7HJghkdfk'}

等配置的信息。

因此可以更改算法,因此新密码会自动使用它们,旧密码可以使用旧算法自动验证,但在成功验证后,它们会使用新算法进行更新。

这个框架是否仍然存在,因为我的搜索非常努力,但没有运气。

1 个答案:

答案 0 :(得分:1)

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

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

它已存在于Spring framework中,或者您也可以将其作为单独的library获取。用法也很简单。