我脑后的某些东西告诉我,我在这里遗漏了一些明显的东西。
我正在将现有的 java 项目与使用 api 密钥的 md5 哈希进行身份验证的第三方 api 集成。它对我不起作用,在调试过程中我意识到我生成的哈希与他们提供的示例不匹配。我发现一些网站从字符串创建 MD5 哈希来检查他们的例子,据我所知,我错了,他们是对的。
例如,根据这个网站,字符串“hello”会生成“5d41402abc4b2a76b9719d911017c592”的哈希值。(FWIW 我对这个网站一无所知,除了它似乎正确地散列了我拥有的示例)。当我通过我的代码运行它时,我得到:
XUFAKrxLKna5cZ2REBfFkg==
这是我用来生成 md5 哈希/字符串的简单方法:
private String md5(String md5Me) throws Exception {
MessageDigest md = MessageDigest.getInstance("MD5");
md.reset();
md.update(md5Me.getBytes("UTF-8"));
return Base64.encodeBase64String(md.digest());
}
上周,我使用了一种非常相似的方法成功地验证了使用 SHA1 算法的不同 API。我想知道问题是否与 org.apache.commons.net.util.Base64.encodeBase64String 相关...如果仅进行一些测试以查看 byteArray 是否正确但转换后的字符串错误,则非常感谢任何帮助.