我尝试使用MessageDigest在linux影子文件中找到相同的哈希值,给定密码,salt值和散列算法,尽管结果与我从下面的函数中获得的结果不匹配。 / p>
预期输出= $ 6 $ 5H0QpwprRiJQR19Y $ bXGOh7dIfOWpUb / Tuqr7yQVCqL3UkrJns9.7msfvMg4ZOPsFC5Tbt32PXAw9qRFEBs1254aLimFeNM8YsYOv。
实际产出= ca0d04319f273d36f246975a4f9c71d0184c4ca7f3ba54bc0b3e0b4106f0eefca1e9a122a536fb17273b1077367bf68365c10fa8a2b18285a6825628f3614194
我有这个函数用于生成哈希值
AVisitor
我指的是this网站。
答案 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库)。