我多年前使用java(spring)框架来散列密码并将它们存储在数据库中。但我无法记住这个名字。
优点是,它不仅仅使用盐等存储散列值,而且还包含有关所用算法和{'alg':'bcrypt', { 'salt':'dsjhjdsfh', 'iter':'356178372', ..}, 'hash':'ju3j7HJghkdfk'}
因此可以更改算法,因此新密码会自动使用它们,旧密码可以使用旧算法自动验证,但在成功验证后,它们会使用新算法进行更新。
这个框架是否仍然存在,因为我的搜索非常努力,但没有运气。
答案 0 :(得分:1)
BCrypt的当前实现以这种方式存在。虽然它们不是以明文-JSON结构存储的,但您仍然可以更改算法或轮数,旧哈希仍然可以正确验证。
请参阅此particular answer以了解如何生成BCrypt哈希,并将与其关联的元数据存储为单个字符串。
它已存在于Spring framework中,或者您也可以将其作为单独的library获取。用法也很简单。