G
Guest
Gast
Hi,
ich hab ein kleines Problem und auch in der Forensuche hab ich nicht so recht gefunden was ich eigentlich suche.
Meine Vorgaben sehen so aus:
Ich bekomme einen Datei und einen String. Dabei repräsentiert der String den Hashwert der Datei bzw. des Dateiinhalts. Jetzt muss ich aus der Datei einen Hashwert ermitteln und diesen mit dem übermittelten vergleichen.
Mein Ansatz
Leider sind die beiden String so nicht gleich. Mein Code ermittelt für die Datei "186359265882238529957277616353027620767", während ich aber "8C337D32E20A9E5F4C6438F93180FF9F" geliefert bekomme. Mache ich bei der Ermittlung meines Hashwertes was falsch? Oder muss ich meinen String (oder den gelieferten String) noch anpassen um vergleichbare String (oder auch Werte) zu bekommen?
Achja, wie man sieht soll als Algorythmus MD5 verwendet werden.
Vielen Dank für eure Hilfe!!!!
ich hab ein kleines Problem und auch in der Forensuche hab ich nicht so recht gefunden was ich eigentlich suche.
Meine Vorgaben sehen so aus:
Ich bekomme einen Datei und einen String. Dabei repräsentiert der String den Hashwert der Datei bzw. des Dateiinhalts. Jetzt muss ich aus der Datei einen Hashwert ermitteln und diesen mit dem übermittelten vergleichen.
Mein Ansatz
Code:
MessageDigest md = MessageDigest.getInstance("MD5");
File f = new File("D:\\test.csv");
InputStream is = new FileInputStream(f);
byte[] buffer = new byte[8192];
int read = 0;
while ((read = is.read(buffer)) > 0) {
md.update(buffer, 0, read);
}
byte[] md5 = md.digest();
BigInteger bi = new BigInteger(1, md5);
String hashString = bi.toString();
System.out.println("Ermittelter String: " + hashString);
f = new File("D:\\test.csv.md5");
BufferedReader br = new BufferedReader(new FileReader(f));
String sLine = br.readLine();
br.close();
System.out.println("Gelieferter String: " + sLine);
System.out.println("Vergleich: " + sLine.equals(hashString));
Leider sind die beiden String so nicht gleich. Mein Code ermittelt für die Datei "186359265882238529957277616353027620767", während ich aber "8C337D32E20A9E5F4C6438F93180FF9F" geliefert bekomme. Mache ich bei der Ermittlung meines Hashwertes was falsch? Oder muss ich meinen String (oder den gelieferten String) noch anpassen um vergleichbare String (oder auch Werte) zu bekommen?
Achja, wie man sieht soll als Algorythmus MD5 verwendet werden.
Vielen Dank für eure Hilfe!!!!