【问题标题】:crypt(3) $6$ password hash algorithm (based on SHA-512) in Java?Java中的crypt(3)$ 6 $密码哈希算法(基于SHA-512)?
【发布时间】:2016-03-07 21:33:42
【问题描述】:

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

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

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

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

【问题讨论】:

标签: java shadow sha crypt sha512


【解决方案1】:

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

【讨论】:

  • 同时 Apache Commons Codec 项目完全支持所有 Linux crypt() 算法!
  • 我会很感激有关该链接来自何处的一些信息。下载随机 jars 可能是个坏主意。
  • 仅供参考,链接已失效,并且没有可用的archive.org 版本。你有其他来源吗?
【解决方案2】:

看看Apache Commons Codec Digest

还有jBCrypt,你可能会觉得有用。

这篇文章Modular Crypt Format or, a side note about a standard that isn’t很多关于Crypt3格式的细节。

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    • 1970-01-01
    • 2016-01-10
    • 2021-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多