WikiDer > Hash-Funktion
EIN Hash-Funktion ist ein Funktion in dem Informatik die Eingaben aus einem breiten Wertebereich in einen (normalerweise) kleineren Bereich umwandelt, normalerweise a Teilmenge der ganzen Zahlen. Die Ausgabe wird die hash, Hash-Code oder verdauen der Eingabe. Es ist eine Form von pseudonymisieren. Das Wort hash kommt von Englisch und meint hier Absätze.
Hash-Funktionen werden verwendet in Hash-Tabellen, Kryptographie und Datenverarbeitung. Bei einem Bereich, der größer als der Bereich ist, ist die Funktion offensichtlich nicht injektiv, aber eine gute Hash-Funktion ist eine, die in der Praxis nur wenige Kollisionen in der Domäne verursacht, mit der sie arbeitet, dh in der Praxis gibt es wenige Paare unterschiedlicher Eingabewerte, die die gleiche Ausgabe ergeben. Je nach Anwendung der Hash-Funktion muss diese auch so beschaffen sein, dass ein solches Paar sogar sehr schwer zu finden ist, wenn man danach sucht.
Das SHA-Familie von Funktionen besteht aus Beispielen dafür.
kryptografischer Hash
Eine kryptographisch sichere Hash-Funktion hat die Eigenschaft, dass es nicht möglich ist, einen Datenblock zu finden, der einen bestimmten Hash-Code zurückgibt, oder zwei verschiedene Datenblöcke zu finden, die denselben Hash-Code zurückgeben, vorausgesetzt, die Datenblöcke sind nicht zu klein ( damit sie alle ausprobiert werden können). Bedingung ist auch, dass die Hashcodes nicht zu klein sind, denn das Ausprobieren von so vielen Datenblöcken, wie Hashcodes möglich sind, liefert im Durchschnitt einmal den angegebenen Hashcode.
Beispiele für kryptografische Hash-Algorithmen sind MD5 und der SHA-Familie von Hash-Funktionen. Allerdings gilt MD5 heutzutage nicht mehr als kryptographisch sicher. Ein theoretischer Angriff ist für SHA-1 bekannt, daher wird auch davon abgeraten.
Hashing von Passwörtern
Die Anmeldung bei einem Computer erfordert oft einen Namen und eine Passwort erforderlich. Von diesen Passwörtern oft nur eines Einweg-Haschisch gespeichert, d. h. die Ausgabe einer Hash-Funktion, sodass das Passwort nicht aus dem Hash abgeleitet werden kann. Sie ist auch nicht erforderlich, da es ausreicht zu prüfen, ob der Hash des vom Benutzer eingegebenen Passworts mit dem hinterlegten Hash übereinstimmt. Der Vorteil ist, dass, wenn die Datei mit Hashes von einem Unbefugten gelesen wird, sie wenig nützt.
Passwort-Hash-Algorithmen umfassen bcrypt, verschlüsseln und PBKDF. Hash-Algorithmen, die nur darauf ausgelegt sind, möglichst schnell berechnet zu werden, sind nicht geeignet.
Die Länge und Komplexität von Passwörtern, die in der Praxis verwendet werden, ist begrenzt, während Computer immer schneller werden. Dies erleichtert es jemandem, der versucht, Passwort-Hash-Codes zu knacken, einen Computer alle möglichen Möglichkeiten ausprobieren zu lassen. Mit Hashing-Algorithmen für Passwörter kann dies verhindert werden, da man einstellen kann, wie viel Rechenzeit sie für diese Algorithmen kosten sollen. Die Algorithmen werden dann so eingestellt, dass ihre Berechnung zum Beispiel eins dauert Millisekunde während die Berechnung eines Hash-Codes mit einem gewöhnlichen Hash-Algorithmus weniger als a . benötigt Mikrosekunde kosten kann. Bei der Passwortprüfung ist es meist kein Problem, wenn es statt einer Mikrosekunde nur eine Millisekunde dauert, während jemand, der versuchen will, die Hash-Codes zu knacken, mehr als tausendmal so viel rechnen muss, also mehr als tausendmal länger.