Also hab folgende Hash Table (siehe anhang (is ge-RARt)). In der stehen Email adressen (algorithmus ist sha1). Ich möchte nun herausfinden ob bestimmte emailadressen in der hashtable sind. Nur check ich nicht wie ich die hash table richtig accesse (per php)?
EDIT:
Die Lösung war recht Simpel: Die Datei besteht aus Blöcken zu je 20 Byte (160Bit). Jeder dieser Block repräsentiert einen SHA1 (im raw binary mode da normaler SHA1 40 Byte lang ist) Hash einer Email.
Code zum einlesen schaut einfach so aus:
Code
$ecg_list = fopen($file,"r");
$e_i=0;
while($ecg_entry[$e_i] = fread($ecg_list,20)) {
$e_i++;
}
fclose($ecg_list);
Weiters muss man noch eine Klartextmail in SHA1 umwandeln um diese vergleichen zu können:
Code
//mit pack() wandelt man den 40 Byte SHA1 Hash in 20 Byte Raw Binary um - wenn man PHP5 hat gibts dafür die funktion hash() die das auch so kann und auch schneller ist als diese
$mod_email = pack("H*",sha1(strtolower($MailList['Email'])));
foreach($ecg_entry as $entry_value) {
if($mod_email == $entry_value)
{
$bad_mail_array[$t_i] = $norm_email;
$t_i++;
}
}
Alles anzeigen