2012-01-30 195 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