import java.io.*;
public class hash1 {
public static void main (String [] eingabe) {
String ziffernreihe = eingabe[0];
byte bytes[] = new byte[100];
int ergebnis = 0;
bytes = ziffernreihe.getBytes();
for (int i=0;i<bytes.length;i++) {
System.out.println(bytes[i]);
}
System.out.println("------------");
ergebnis = bytes[0];
for (int i=1;i<bytes.length;i++) {
ergebnis = ergebnis ^ bytes[i];
}
System.out.println(ergebnis);
}
}
Wir testen das Beispiel:
alfred@newbie:~/java/krypto/hash > java hash1 da 100 97 ------------ 5 alfred@newbie:~/java/krypto/hash > java hash1 bg 98 103 ------------ 5
Trotz verschiedener Eingaben erhalten wir die gleiche Prüfsumme! Dies ist natürlich untragbar18. Weiters ist klar, dass Eingaben gleiche Prüfsummen liefern, wenn lediglich die Reihenfolge der Zeichen verändert ist.