Hallo,
ich möchte mit Java MD5-Hashs berechnen. Ich benutze derweilen folgenden Code:
Hat bis jetzt immer funktioniert. Aber: Wenn ich mit dieser Funktionen den folgenden String hashe kommt was anderes raus, als wie, wenn ich es mit der PHP-Funktion md5() mache:
Mit der Java-Funktionen kommt "5a58d7f3adffbb72f1cc3a2b73035130" raus. Mit PHP kommt "3a51926ffccb22364b85baa3bf3f0d4c".
Also erstmal: Warum kommt was unterschiedliches raus, weil wenn ich z.B. "hallo" oder so hashe, funktioniert es.
Dann dachte ich, nochmal nachggooglen. Dabei bin ich auf Viele Dinge - Fotografie, Computer und mehr » MD5-Summen mit Java richtig erstellen gestoßen, wo erklärt wird, wie man das in Java "richtig" macht. Das habe ich auch versucht; ohne Erfolg.
Also, wie mache ich es richtig?
Danke
kaeseohnekaese
ich möchte mit Java MD5-Hashs berechnen. Ich benutze derweilen folgenden Code:
Java:
public static String md5 (String str) {
String ret = "";
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(str.getBytes());
byte[] bytes = md.digest();
for (int i=0; i<bytes.length; i++) {
String tmp = Integer.toHexString((bytes[i] & 0xFF));
ret += (tmp.length() == 1 ? "0" : "") + tmp;
}
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return ret;
}
Hat bis jetzt immer funktioniert. Aber: Wenn ich mit dieser Funktionen den folgenden String hashe kommt was anderes raus, als wie, wenn ich es mit der PHP-Funktion md5() mache:
Java:
char[] chars = {
(char) 0x00,
(char) 0x00,
(char) 0x08,
(char) 0xf8,
(char) 0x02,
(char) 0xbb,
(char) 0xf8,
(char) 0x01,
(char) 0xf8,
(char) 0x01,
(char) 0x9c
};
String str = new String(chars);
Mit der Java-Funktionen kommt "5a58d7f3adffbb72f1cc3a2b73035130" raus. Mit PHP kommt "3a51926ffccb22364b85baa3bf3f0d4c".
Also erstmal: Warum kommt was unterschiedliches raus, weil wenn ich z.B. "hallo" oder so hashe, funktioniert es.
Dann dachte ich, nochmal nachggooglen. Dabei bin ich auf Viele Dinge - Fotografie, Computer und mehr » MD5-Summen mit Java richtig erstellen gestoßen, wo erklärt wird, wie man das in Java "richtig" macht. Das habe ich auch versucht; ohne Erfolg.
Also, wie mache ich es richtig?
Danke
kaeseohnekaese