next up previous contents
Nächste Seite: Verbesserte Hashfunktion Aufwärts: Hash-Funktionen Vorherige Seite: XOR-Verknüpfung:   Inhalt

Eine einfache Hash-Funktion

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.



Alfred Nussbaumer 2003-02-10