首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP的MD5和Java的MD5数据不匹配

PHP的MD5和Java的MD5数据不匹配
EN

Stack Overflow用户
提问于 2017-10-03 17:18:32
回答 2查看 210关注 0票数 1

java的代码:

代码语言:javascript
复制
    public static String encoderByMd5(String str){
    MessageDigest md5;
    String newstr = "";
    try{
        md5 = MessageDigest.getInstance("MD5");
        BASE64Encoder encoder = new BASE64Encoder();
        try{
            newstr=encoder.encode(md5.digest(str.getBytes("utf-8")));
            newstr = newstr.replaceAll("=", "");
        }catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }catch(NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
    return newstr;
}

php代码:

代码语言:javascript
复制
function javaMd5($str){
    $str = md5($str);
    $str = base64_encode($str);
    $str = str_replace("=","",$str);
    return $str;
}

如何使PHP加密数据与Java加密数据相同?请帮帮我!

EN

回答 2

Stack Overflow用户

发布于 2017-10-03 17:31:17

我认为这是两个方法md5.digest(str.getBytes("utf-8"))和md5($str)……

票数 0
EN

Stack Overflow用户

发布于 2017-10-03 17:44:29

尝尝这个

代码语言:javascript
复制
public static String encoderByMd5(String str){
    MessageDigest md5;
    String newstr = "";
    try{
        md5 = MessageDigest.getInstance("MD5");
        BASE64Encoder encoder = new BASE64Encoder();
        try{
            StringBuilder builder = new StringBuilder();
            for (byte b: md5.digest(str.getBytes("utf-8"))) {
                builder.append(String.format("%02X", b & 0xff));
            }

            newstr = encoder.encode(builder.toString().getBytes());
            newstr = newstr.replaceAll("=", "");
        }catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }catch(NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
    return newstr.toUpperCase();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46541183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档