Hallo zusammen,
ich bin völlig verwirrt, ich versuche gerade eine MD5-Checksummen Überprüfung zu implementieren, es scheitert allerdings schon am Anfang...
Ich scheine etwas Elementares an MD5 nicht verstanden zu haben, erzeuge ich zweimal eine md5-Prüfsumme von DEMSELBEN String muss die doch gleich sein, oder?
Folgendes kurzes Beispielprogramm:
Die Ausgabe ist nun:
Wie man aber sieht, sind die eben nicht identisch!
Welchen elementaren Zusammenhang hab ich hier nicht verstanden?
ich bin völlig verwirrt, ich versuche gerade eine MD5-Checksummen Überprüfung zu implementieren, es scheitert allerdings schon am Anfang...
Ich scheine etwas Elementares an MD5 nicht verstanden zu haben, erzeuge ich zweimal eine md5-Prüfsumme von DEMSELBEN String muss die doch gleich sein, oder?
Folgendes kurzes Beispielprogramm:
Code:
public class TestStuff {
public static void main( String[] args ) {
String test = "Huhu!!!!";
// first digest
MessageDigest foo = null;
byte[] firstChecksum = null;
try {
foo = MessageDigest.getInstance("MD5");
foo.update(test.getBytes());
firstChecksum = foo.digest();
foo.reset();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
// second digest
MessageDigest bar = null;
byte[] secondChecksum = null;
try {
bar = MessageDigest.getInstance("MD5");
bar.update(test.getBytes());
secondChecksum = bar.digest();
bar.reset();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
if(!MessageDigest.isEqual(firstChecksum, secondChecksum)) {
System.out.println("checksums are not equal!");
} else {
System.out.println("checksums are equal!");
}
System.out.println("first checksum: " + firstChecksum);
System.out.println("second checksum: " + secondChecksum);
}
}
Die Ausgabe ist nun:
Code:
checksums are equal!
first checksum: [B@130c19b
second checksum: [B@1f6a7b9
Wie man aber sieht, sind die eben nicht identisch!
Welchen elementaren Zusammenhang hab ich hier nicht verstanden?