2017-04-25 55 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來說很好,但如果你想遷移到另一個,你又會失敗。但也許這個框架已經消失了。 –