【问题标题】:PHP's MD5 and Java's MD5 data are not matchesPHP 的 MD5 和 Java 的 MD5 数据不匹配
【发布时间】:2017-10-03 09:18:31
【问题描述】:

java的代码:

    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的代码:

function javaMd5($str){
    $str = md5($str);
    $str = base64_encode($str);
    $str = str_replace("=","",$str);
    return $str;
}

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

【问题讨论】:

  • 你能提供样本输出吗?
  • 我搜索了 BASE64Encoder 并找不到任何东西。此外,如果您从 base64 编码字符串中删除 =,您之后可能无法对其进行解码。
  • 我不需要解码,只用来加密
  • 使用 md5($str,true) 获取原始 MD5,因为这也是 Java 将得到的

标签: java php md5


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    试试这个

    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();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-19
      • 2010-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-17
      • 1970-01-01
      相关资源
      最近更新 更多