如果我在java和javascript -Will中生成一个文件的-Will,那么两者的值是相同的吗?我必须在javascript中生成md5,并将其发送到服务器,服务器与其匹配。我得到了一个哈希不匹配错误。
实际上,我需要'base64编码128位MD5摘要‘来发送到S3使用javascript。
谢谢
发布于 2017-03-30 06:43:06
md5是哈希算法,它与语言无关。只要算法的输入是相同的,它就会产生相同的散列。
发布于 2017-03-30 07:32:50
MD5只是一个散列算法,因此可以在任何语言中实现。结果将是相同的,只要您在实现中不犯任何错误。
在以不同语言实现时,需要注意的一些区域可能会无意中导致实现中的错误,可以是:范围/截断/提升整数值、运算符优先等。
发布于 2017-03-30 07:36:12
不是的。MD5与语言无关。
但据我所知,您正在从一台计算机创建哈希码,并使用另一台计算机读取它,这可能会导致字符集混乱。确保您正在使用相同的字符集UTF-8推荐。而且我发现这也很有用,尝试使用它而不将哈希存储在数据库中。
public static String MD5(String md5) {
try {
java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");
byte[] array = md.digest(md5.getBytes("UTF-8"));
StringBuffer sb = new StringBuffer();
for (int i = 0; i < array.length; ++i) {
sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1, 3));
}
return sb.toString();
} catch (Exception e) {
}
return null;
}https://stackoverflow.com/questions/43110370
复制相似问题