日期:2014-05-18  浏览次数:20693 次

我的MD5加密出来的怎么不一样?

public static String encryptMD5(String data) throws Exception {

MessageDigest md5 = MessageDigest.getInstance(KEY_MD5);
md5.update(data.getBytes());
BigInteger bi = new BigInteger(md5.digest());
return bi.toString(16);
}

用的MessageDigest 类。
加密字符串a 结果是 cc175b9c0f1b6a831c399e269772661  网上是0cc175b9c0f1b6a831c399e269772661

------解决方案--------------------
你用biginteger这样转的话 如果第一个个字符ascii码小于16的话 那么它转16进制的话会忽略掉前面的0 比如两个ascii码 是14和15 那么转出来的结果是e0f 而我们需要的是0e0f 这样说能明白不?