关于不同平台md5码不一致问题

Posted on 2017-03-08 13:07  DragonZhang  阅读(1190)  评论(0编辑  收藏  举报

public static String md5(String src){
try {
MessageDigest md=
MessageDigest.getInstance("MD5");
byte[] output=md.digest(src.getBytes());
//return new String(output);
String ret =
Base64.encodeBase64String(output);
return ret;
} catch (Exception e) {
throw new Md5Exception("加密失败", e);
}
}

public static String createId(){
String id=UUID.randomUUID().toString();
//return id;
return id.replace("-","");
}

通过代码发现一个问题

byte[] output=md.digest(src.getBytes());

在不同的环境下获得的结果可能是不一样的,这样也造成很多MD5结果不一样。

所以要保证在不同环境下MD5结果相同那么必须使用相同的字符编码,比如:getBytes("utf-8");

Copyright © 2024 DragonZhang
Powered by .NET 8.0 on Kubernetes