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");