7

如果在“/etc/pam.d/common-password”中激活,我正在寻找一个 Java 函数来生成/验证密码哈希,这些哈希的编码方式crypt(3)与将它们存储在 Linux“/etc/shadow”文件中时的方式相同sha512.

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

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

http://www.akkadia.org/drepper/SHA-crypt.txt我了解到,与 MD5 一样,它不仅仅是一个类似于 SHA 哈希DigestUtils或 JavaMessageDigest类产生的算法,而是一种更神奇的算法。

4

3 回答 3

5

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

于 2012-02-08T13:45:40.727 回答
2

看看Apache Commons Codec Digest

jBCrypt你也可能会觉得有用。

在这篇文章Modular Crypt Format 或关于一个标准的附注中,它不是Crypt3 格式的很多细节。

于 2016-03-07T11:16:39.777 回答
0

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

基于此处意味着 crypt(3) 使用例如 SHA-512,但添加了盐值并按照http://www.akkadia.org/drepper/SHA-crypt.txt中的描述进行多次迭代

于 2012-02-03T17:47:33.787 回答