2012-01-30 199 views
6

我正在尋找一個Java函數來生成/驗證密碼哈希編碼的方式crypt(3)將它們存儲在Linux「/ etc/shadow」文件中時如果在/etc/pam.d/中激活了sha512常見的密碼」。

明文字符串「geheim」將轉化爲:

"$6$WoC532HB$LagBJ00vAGNGu8p9oeYDOSNZo9vTNTzOgPA.K0bJoiXfbcpj3jBuTkNwdzCrSNadRi8LanH1tH6tGGPPp/Lp3." 

http://www.akkadia.org/drepper/SHA-crypt.txt我的理解是,像MD5,它不只是一個SHA哈希像DigestUtils或Java MessageDigest類生產但也不算法更有魔力。

+0

您是否檢查過:http://stackoverflow.com/questions/3174943/java-implementation-of-crypt3 – home 2012-01-30 11:02:54

回答

5

我發現所有的新隱窩Java實現()中描述的幾個迭代算法在這裏:ftp://ftp.arlut.utexas.edu/java_hashes/

+0

與此同時,Apache Commons Codec項目完全支持所有Linux crypt()算法! – lathspell42 2012-10-08 17:47:52

+0

我會很感激有關鏈接來自哪裏的信息。下載隨機瓶子可能是一個壞主意。 – DonyorM 2016-03-07 11:26:55

+0

僅供參考,鏈接已經死亡,沒有'archive.org'版本可用。你有另一個來源嗎? – Luc 2018-03-06 11:30:00

0

您提到的其他問題僅提供了基於DES的傳統crypt(3)方法和基於MD5的「$ 1 $」方法的鏈接。我需要檢查使用基於SHA-1的「$ 5 $」方法或基於SHA-512的「$ 6 $」方法的密碼。

這裏意味着crypt(3)使用例如SHA-512,但增加了一個鹽值,不作爲http://www.akkadia.org/drepper/SHA-crypt.txt

+0

經過一番搜索,我發現至少有一個基於SHA-512的$ 6 $機制的實現: http ://tools.arlut.utexas.edu/gash2/doc/javadoc/arlut/csd/crypto/Sha512Crypt.html – lathspell42 2012-02-03 18:40:20