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

如代码,请问为什么不一样,怎么才能一样
展开
 我来答
澈水招落叶
推荐于2017-09-06 · TA获得超过392个赞
知道小有建树答主
回答量:428
采纳率:100%
帮助的人:275万
展开全部
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位)
来自浮山舞尽霓裳的铁树
2014-03-18 · TA获得超过212个赞
知道小有建树答主
回答量:239
采纳率:0%
帮助的人:122万
展开全部
加密完是32位,为什么会有个短的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式