alternativ md5 Gibt den Hash als 32 Zeichen lange Hexadezimalzahl zurück.
Hm. MD5 liefert genau genommen 128 bit oder 16 Byte. Und das kann man so auch speichern.
4.294.967.296 (mögliche IPv4-Adressen) * 16 Byte sind gerade mal 68.719.476.736 oder 69GB für die Hashes und, falls Du eine Tabelle bauen willst, nochmal 17.179.869.184 oder 18 GB für die IPs (Das sind „D-Worte“ oder 32-Bit-Integers).
Wenn ich das schlau aufteilen will, lege für deren erste drei Bytes zwei verschachtele Verzeichnis-Ebenen (Namen: 0-255) und darin jeweils 255 eben so benamte Datendateien (0-225) an (das sind dann insgesamt 16.777.216) Dateien und Verzeichnisse - wobei die Dateien mit dem sortierten Rest des Hashes + der zugehörigen IP gerade mal 4096 Bytes (für die Hashes) + 1024 Bytes (für die zugehörigen IPs) groß sind.
Ups. Das müssen die ja gar nicht. Ich brauche ja nur noch 13 statt 16 Byte pro Hash, der Rest steckt ja in den Datei-oder Verzeichnisnamen.
Dann speichere ich das zusammen mit einem kompletten Linux auf einer 128 GB großen SD-Card und werte es auf einem Raspi aus. Da ich fixe Längen der Items habe kann ich die zielgerichtet wählbare und recht kleine Datei einfach „durchsteppen“, also eine fixe Anzahl an Bytes aus der Datei lesen (13 Resthash +4 IP) danach die 13 Bytes vergleichen und im Fall des Treffers die 4 Bytes dann als IP formatiert ausgeben. Im schlimmsten Fall habe ich 254 Fehlgriffe, die zu einer Wiederholung führen...
Wenn ich frech bin mach ich das mit einem schnöden Bash-Skript und dd
mit bs
und skip
(für das byteweise Lesen) aus den Dateien.
Also ich glaube, der Datenschutzbeauftrage ist mit md5 unzufrieden.