關於php MD5加密 與java MD5 加密結果不一致的問題

       問題說明:今天在作java接口的時候,遇到一個麻煩問題,浪費我半個下午,也就是MD5加密問題,用戶信息是由一個微博系統拿到的,這個微博系統是php開發的,密碼使用的是php的MD5 加密方式。與java的MD5是有點不一樣的,因此就出現加密結果不同的狀況。 php

        問題解決代碼以下: java

        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("%02x", b&0xff));        
                  }
                 return  buf.toString();
               }catch( Exception e ){
                   e.printStackTrace();  app

                   return null;
                }
        } 編碼

相關文章
相關標籤/搜索