PHP md5 和 java 的md5出来的数据不一样
MessageDigestlocalMessageDigest=MessageDigest.getInstance("MD5");localMessageDigest.u...
MessageDigest localMessageDigest = MessageDigest.getInstance("MD5");
localMessageDigest.update(paramString.getBytes());
byte[] arrayOfByte = localMessageDigest.digest();
StringBuffer localStringBuffer = new StringBuffer();
for (int i = 0;; i++)
{
if (i >= arrayOfByte.length) {
return localStringBuffer.toString();
}
localStringBuffer.append(Integer.toHexString(0xFF & arrayOfByte[i]));
}
-----------------
Java的结果:e00bed7922d7e23d28ac128dbb3c
PHP的结果:e000bed7922d7e23d28ac1028d0b0b3c
如代码,请问为什么不一样,怎么才能一样 展开
localMessageDigest.update(paramString.getBytes());
byte[] arrayOfByte = localMessageDigest.digest();
StringBuffer localStringBuffer = new StringBuffer();
for (int i = 0;; i++)
{
if (i >= arrayOfByte.length) {
return localStringBuffer.toString();
}
localStringBuffer.append(Integer.toHexString(0xFF & arrayOfByte[i]));
}
-----------------
Java的结果:e00bed7922d7e23d28ac128dbb3c
PHP的结果:e000bed7922d7e23d28ac1028d0b0b3c
如代码,请问为什么不一样,怎么才能一样 展开
2个回答
展开全部
public final class MD5 {
/**
* 获取MD5加密后的字符串
* @param str 明文
* @return 加密后的字符串
* @throws Exception
*/
public static String getMD5(String str) throws Exception {
/** 创建MD5加密对象 */
MessageDigest md5 = MessageDigest.getInstance("MD5");
/** 进行加密 */
md5.update(str.getBytes());
/** 获取加密后的字节数组 */
byte[] md5Bytes = md5.digest();
String res = "";
for (int i = 0; i < md5Bytes.length; i++){
int temp = md5Bytes[i] & 0xFF;
if (temp <= 0XF){ // 转化成十六进制不够两位,前面加零
res += "0";
}
res += Integer.toHexString(temp);
}
return res;
}
}
//这是我写的32位MD5加密(原本是16位)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询