我从 javascript 中得到不同的哈希值,然后从 java 中得到……我希望有人能解释并帮助纠正这个问题。
历史 。我不得不将他们的 java api 重写为 javascript,这会导致一些翻译问题。其中一个问题是他们期望图像的数据数组和该图像的 md5 哈希值进行比较。在 Java 中,当我使用他们的代码时,我得到的哈希值与在 javascript 中做同样的事情时不同。
在java中,代码:
byte[] decodedString = Base64.decode(testimg, Base64.DEFAULT);
MessageDigest md = MessageDigest.getInstance("MD5");
md.reset();
md.update(decodedString);
byte[] array = md.digest();
创建一个散列:ad5e3cdf9174167243ded0e329a37cf6
javascript中的相同内容给出:8bd54f4d1c4800e3df9cdd2aee728ded
var decodedstr = window.atob(testimg);
var hashString = MD5(decodedstr);
在 javascript 中,我不能像使用 java 一样传递字节数组,但字节值应该相同(尽管 java 将这些显示为无符号)
如何在 javascript 中更改我的图像数组以创建相同的哈希并且仍然具有正确的图像?