brilliant2012 2009-12-25 16:26
浏览 337
已采纳

遇到中文,则Java的MD5与.Net的MD5结果不一致的问题

如何解决?有模拟.net的MD5方式加密算法吗??各位帮个忙
[b]问题补充:[/b]
public synchronized static final byte[] toMd5(String data,String encodingType) {
if (digest == null) {
try {
digest = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException nsae) {
System.err.println("Failed to load the MD5 MessageDigest. ");
nsae.printStackTrace();
}
}
if (StringUtils.isBlank(data)) {
return null;
}
try {
digest.update(data.getBytes(encodingType));
} catch (UnsupportedEncodingException e) {
digest.update(data.getBytes());
}
return digest.digest();

}

呵呵,第二个参数传入“UTF-8”就可以了,谢谢

  • 写回答

1条回答 默认 最新

  • JavaHero080 2009-12-26 08:47
    关注

    Md5如果是对字节加密的话,应该跟中文是否没有关系。
    你这个,应该是两边虽然字符串内容相当(中文),但是各自用了不同的内码,比如一个用Unicode,一个用GBK,那当然就不一致了。
    .Net我不太熟,不知道怎么改。不过在java里你可以很方便的指定编码。比如一个字符串:
    [code="java"]
    String s;
    // 初始化s
    byte[] data = s.getBytes("UTF-8");
    [/code]
    像上面这样子。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的