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!