Die Liste (ca. 9GB)
Könnte es nützen, diese Liste in Segmente aufzuteilen, sortiert nach erstem Zeichen?
Nun ja. Da die Passwörter in der Liste mit sha1 "gehascht" wurden werden die zu testenden Passwörter ebenfalls mit sha1 "gehascht". Und für Tests werden die Hashes verglichen. Ich würde die Liste also in eine Datenbank legen und zwecks wahlfreien Zugriff auf die Spalte als Volltext (Vorher aber mit TO_BASE64(UNHEX(0afc18...))
base64 recodieren!) indexieren lassen. Wozu dann noch Segmente? Jedenfalls nicht bei 9 Gig.
Im Terabyte-Bereich denkt man dann über range-partitionierte Tabellen nach.
Aber wenn Du unbedingt willst...
Traditionell werden die einzelnen Bytes des Hashes heaxdezimal kodiert dargestellt. Man könnte also auch bei Zahlen bleiben. Allerdings reichen die Stellen von 'bigint' nicht aus. Also auf zwei Spalten oder mehr Spalten aufteilen und die indexieren. Folgt später.