MD5-Checksummen

Moin Leutz

Folgender Algorhytmus dürfte ja md5 checksummen zurückgeben

try {
MessageDigest md = MessageDigest.getInstance( „MD5“ );
byte[] encryptMsg = md.digest(msg.getBytes());
return (new String(encryptMsg));
}catch (NoSuchAlgorithmException e) {}

Problem:
übergibt man den String „matze“, so liefert der Algorhytmus
ed164df332a9e3e5cc858a738439dbf
sollte aber sein
ed 0 164df332a9e3e5cc858a738439dbf

mein fehler oder java fehler?

Moin, moin,

Java rechnet richtig. Du hast wohl bei der Umwandlung des Byte-Arrays in die Zeichenkette etwas falsch gemacht.
Das zweite Byte, d.h. enryptMsg[1] liefert 1, muß aber nach 01 (hexadezimal) umgewandelt werden, da eine Hexzahl immer ein Nibble eines Bytes beschreibt. Also immer das High-Nibble und dann das Low-Nibble umwandeln. Das erste Byte ist dezimal -19 (=0xed). Das zweite Byte eben 1 (=0x 0 1), …

Gruß,
Frank

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

jo stimmt, aber so stands halt im Tutorial…
gleich noch ne Frage hinterher, weil so schön schnell ging:

ich möchte eine php mit argumenten aus java heraus aufrufen
ist das realisierbar mit:

URL U = new URL(url);
URLConnection UC = U.openConnection();
UC.connect();

Hallo Matthias,

das sollte eigentlich so funktionieren. Ich habe das jetzt aber so nicht ausprobiert.
Das PHP-Skript sollte allerdings auf einem Web-Server liegen und über eine http://… URL zu erreichen sein.

Gruß,
Frank

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

1 „Gefällt mir“