crypt(3)Java中的$ 6 $密码哈希算法(基于SHA-512)?

时间:2012-01-30 10:54:36

标签: java shadow sha crypt sha512

我正在寻找一个Java函数来生成/验证密码哈希值,如果crypt(3)被激活,则会在sha512将它们存储在Linux“/ etc / shadow”文件中时进行编码在“/etc/pam.d/common-password”中。

明文字符串“geheim”将转换为:

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

http://www.akkadia.org/drepper/SHA-crypt.txt我明白,与MD5一样,它不仅仅是像DigestUtils或Java MessageDigest类这样的SHA哈希产生的,而是一种更具魔力的算法。 / p>

3 个答案:

答案 0 :(得分:5)

我在这里找到了所有新crypt()算法的Java实现:ftp://ftp.arlut.utexas.edu/java_hashes/

答案 1 :(得分:1)

查看Apache Commons Codec Digest

同样jBCrypt您可能会觉得有用。

在本文Modular Crypt Format or, a side note about a standard that isn’t中详细介绍了Crypt3格式。

答案 2 :(得分:0)

您提到的其他问题仅提供基于DES的传统crypt(3)方法和基于MD5的“$ 1 $”方法的链接。我需要检查使用基于SHA-1的“$ 5 $”方法的密码,甚至是基于SHA-512的“$ 6 $”方法。

基于此处意味着crypt(3)使用例如SHA-512但添加了一个salt值,并按照http://www.akkadia.org/drepper/SHA-crypt.txt

中的描述进行了多次迭代