首頁 >Java >java教程 >java md5不一致怎麼辦

java md5不一致怎麼辦

藏色散人
藏色散人原創
2020-04-07 10:01:084494瀏覽

java md5不一致怎麼辦

java md5不一致怎麼辦? Java漢字md5值不一致問題的解決方法

推薦教學:《java學習

透過main方法測試得到一個加密值,透過servlet request調用得到一個加密值,都是加密相同的漢字,但結果不同。

如果是加密英文,就不會有這種問題。

原因就在於漢字編碼,在加密時設定一下編碼UTF-8,問題解決。

 

 

public static String EncoderByMd5(String str) {  
    String result = "";  
    MessageDigest md5 = null;  
    try {  
        md5 = MessageDigest.getInstance("MD5");  
        // 这句是关键  
        md5.update(str.getBytes("UTF-8"));  
    } catch (NoSuchAlgorithmException e) {  
        // TODO Auto-generated catch block  
        e.printStackTrace();  
    } catch (UnsupportedEncodingException e) {  
        // TODO Auto-generated catch block  
        e.printStackTrace();  
    }  
    byte b[] = md5.digest();  
    int i;  
    StringBuffer buf = new StringBuffer("");  
    for (int offset = 0; offset < b.length; offset++) {  
        i = b[offset];  
        if (i < 0)  
            i += 256;  
        if (i < 16)  
            buf.append("0");  
        buf.append(Integer.toHexString(i));  
    }  
    result = buf.toString();  
  
    return result;  
}

以上是java md5不一致怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn