Heim >Java >javaLernprogramm >Was tun, wenn Java MD5 inkonsistent ist?

Was tun, wenn Java MD5 inkonsistent ist?

藏色散人
藏色散人Original
2020-04-07 10:01:084506Durchsuche

Was tun, wenn Java MD5 inkonsistent ist?

Was soll ich tun, wenn Java MD5 inkonsistent ist? Lösung für das Problem inkonsistenter MD5-Werte für chinesische Java-Zeichen

Empfohlenes Tutorial: „Java-Lernen

Erhalten Sie einen verschlüsselten Wert durch den Hauptmethodentest , und rufen Sie es über eine Servlet-Anfrage auf. Es wird ein verschlüsselter Wert erhalten, der dieselben chinesischen Zeichen verschlüsselt, die Ergebnisse jedoch unterschiedlich sind.

Wenn es sich um verschlüsseltes Englisch handelt, gibt es kein solches Problem.

Der Grund liegt in der chinesischen Zeichenkodierung. Stellen Sie beim Verschlüsseln die Kodierung auf UTF-8 ein und das Problem ist gelöst.

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

Das obige ist der detaillierte Inhalt vonWas tun, wenn Java MD5 inkonsistent ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn