Java Sha-512消息摘要与salting不匹配linux影子文件哈希密码

时间:2016-08-07 06:45:49

标签: java linux sha512

我尝试使用MessageDigest在linux影子文件中找到相同的哈希值,给定密码,salt值和散列算法,尽管结果与我从下面的函数中获得的结果不匹配。 / p>

  • 哈希算法= 6
  • 密码= mandar
  • 盐值= 5H0QpwprRiJQR19Y
  • 预期输出= $ 6 $ 5H0QpwprRiJQR19Y $ bXGOh7dIfOWpUb / Tuqr7yQVCqL3UkrJns9.7msfvMg4ZOPsFC5Tbt32PXAw9qRFEBs1254aLimFeNM8YsYOv。

  • 实际产出= ca0d04319f273d36f246975a4f9c71d0184c4ca7f3ba54bc0b3e0b4106f0eefca1e9a122a536fb17273b1077367bf68365c10fa8a2b18285a6825628f3614194

我有这个函数用于生成哈希值

AVisitor

我指的是this网站。

2 个答案:

答案 0 :(得分:0)

使用/etc/shadow系统调用(man crypt)对crypt(3)中的密码进行哈希处理。

您可以使用Apache Commons implementation来模仿相同的行为。

答案 1 :(得分:0)

根本问题在于您所指的网站使用的是Perl crypt(),这似乎是对libc crypt()的直接调用。在the manual of crypt中未指定实际计算SHA-512哈希的方式,但我搜索了GitHub并找到了this ~400 LOC source file sha512-crypt.c

我读完了它,无法判断它是否涉及某种标准,或者它是否是使用该算法的唯一程序。由于SHA-512似乎也是POSIX标准的专有扩展,因此绝对不可能。

您可以询问维护者或邮件列表并报告您的发现,否则如果您绝对需要该功能,则可以编写本机扩展(不知道是否已有Java库)。