java与php的md5互通

    xiaoxiao2026-02-13  21

    其实md5这个算法和语言没有什么关系,很多同学在使用不同语言开发的时候,使用md5算法得出的结果会不一样,比如java与php,其实很多时候是由于受到源码文件的影响,比如你java的字符串编码是unicode,不受源码文件影响,而php的编码是和源文件编码一致的,受源码编码影响。在做下记录 public String md5(String txt) { try{ MessageDigest md = MessageDigest.getInstance("MD5"); md.update(txt.getBytes("GBK")); //问题主要出在这里,Java的字符串是unicode编码,不受源码文件的编码影响;而PHP的编码是和源码文件的编码一致,受源码编码影响。 StringBuffer buf=new StringBuffer(); for(byte b:md.digest()){ buf.append(String.format("x", b&0xff)); } return buf.toString(); }catch( Exception e ){ e.printStackTrace(); return null; } }

     

    最新回复(0)