gpt4 book ai didi

Java MessageDigest MD5 未返回预期结果

转载 作者:行者123 更新时间:2023-11-30 03:20:44 26 4
gpt4 key购买 nike

我非常无聊,所以我正在制作一个实验性的暴力破解器。不过,我在使用 MD5 时遇到了一些问题。我得到两个截然不同的输出,

1aabac6d068eef6a7bad3fdf50a05cc8
-7d881f6ef28afe6a4bb78689e91f6e53

第一个是有效的,并且是 dd,第二个是无效的,即使我删除了前导连字符。

我正在查看this answer我调整了我所拥有的内容来解决我的主要问题,但我仍然得到无效的 MD5。

我的代码:

public boolean testValidity(String s) {
try {
MessageDigest md = MessageDigest.getInstance(name());
byte[] hashDigest = md.digest(s.getBytes("UTF-8"));
String hash = String.format("%032x", new BigInteger(md.digest(s.getBytes("UTF-8"))));
System.out.println(hash);
return getCompare().equalsIgnoreCase(hash);
} catch (NoSuchAlgorithmException | UnsupportedEncodingException | NullPointerException e) {
e.printStackTrace();
return false;
}
}

在上面,name() 只是获取 "MD5",而 getCompare() 则获取一个哈希值来进行比较。

我的问题是,如何修复我的代码以确保所有 MD5 均有效?

最佳答案

您的 BigInteger 构造函数使用二进制补码。使用符号/幅度变量代替第一个参数 1。http://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html#BigInteger(int,%20byte[])

关于Java MessageDigest MD5 未返回预期结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31399212/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com