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.