Hashing-Algorithmus, seine Verwendungen?
Verstehe ich nicht hashing-algorithmen. Kann mir jemand erklären es mir in einer sehr einfach verständlichen Art und Weise.
Dank
EDIT: es mit mit Benutzernamen aus einer text-Datei.
- Sie versehentlich den hash-Algorithmus
- Es gibt viele "Hash-algorithmen", und viele verwendet für das hashing. Vielleicht könntest du genauer werden in deiner Frage?
- Sie haben vergessen, die
- Es mit mit von Benutzernamen aus einer text-Datei.
- Sprechen Sie über eine hash-Funktion für die Verwendung mit einer hash-Tabelle oder redest du von der Berechnung einer Prüfsumme (auch bekannt als "message digest" oder "cryptographic hash") für die Erkennung von Daten Korruption?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine Menge von hashing-algorithmen, aber die grundlegende Idee ist, schnell und (fast) eindeutig ein Bezeichner für ein Datenelement. Diese können dann verwendet werden als ein index in eine Tabelle, sodass Daten schnell nachgeschlagen. Die meisten hash-algorithmen Kollisionen, wo zwei Stücke von Daten wird der hash auf den gleichen Wert, aber das ist extrem selten, dass die besten algorithmen.
Für ein Beispiel, warum dies nützlich sein könnte, sagen wir, ich hashed die gesamte Telefon-Buch für meine Stadt. Jetzt zu tun, anstatt eine binäre Suche, wenn ich Aussehen will jemand die Nummer alles, was ich zu tun ist, führen Sie Ihren Namen durch den Hash-Algorithmus dann gehen direkt zu, dass der index in meiner Tabelle.
Vorausgesetzt, Sie Fragen sich jemand grundsätzlich erklären, der für das Hashen denken Sie an ein array. Nun stellen Sie sich eine riesige Auswahl, wo Sie wollen zu finden einem bestimmten Teil der Daten, die nur in einem array-slot. Anstelle der Iteration durch das array, können Sie input-Daten, und verwenden Sie diese zur Berechnung des index. Unter Verwendung der gleichen Formel, die Sie verwendet zum speichern der Daten im array, Sie können nur springen, um den Speicherort der Daten, die Sie wollen, anstatt Umgekehrt.
Hashing-algorithmen versuchen, den Vergleich von großen Datenmengen erleichtern. Statt den Vergleich von Daten auf Gleichheit reicht es zu vergleichen der hash-Werte.
Gibt es eine Menge von verschiedenen hashing-algorithmen, einige gibt es kryptographische Hash-algorithmen wie MD5, SHA1, SHA256 usw.. Es haben Sie zwei gleiche hash-Werte können Sie sicher sein, dass die Daten auch die gleichen.
Einen hash bedeutet eine 1 zu 1 Beziehung zwischen den Daten. Dies ist ein gemeinsamer Datentyp in Sprachen, obwohl manchmal genannt genannt ein Wörterbuch. Ein hash-Algorithmus ist ein Weg, um einen Eingang und haben immer die gleiche Leistung, andere Weise bekannt als einer 1-zu-1-Funktion. Eine ideale hash-Funktion ist, wenn dieser Prozess immer ergibt sich eine eindeutige Ausgabe. So können Sie jemandem sagen, hier ist eine Datei, und hier ist die md5-hash. Wenn die Datei beschädigt wurde während dann der md5-hash wird ein anderer Wert.
In der Praxis eine hash-Funktion immer einen Wert von der gleichen Größe, zum Beispiel md5 () - es ist immer die Rückkehr 128bits unabhängig von der Größe der Eingabe. Dies macht eine 1 zu 1 Beziehung unmöglich. Ein kryptographische hash-Funktion nimmt zusätzliche Vorsichtsmaßnahmen, die es schwierig machen, produzieren 2 verschiedene Eingänge mit demselben Ausgang, dies nennt man eine Kollision. Es macht es auch schwierig, die umgekehrte Funktion. Hash-Funktionen dienen zur Speicherung von Passwörtern, weil es, wenn ein Angreifer wo erhalten Sie den Passwort-hash, dann zwingt es den Angreifer zu brechen, die die hash, bevor er es verwenden kann, um sich einzuloggen. Zu brechen-hashes Angriffe nehmen ein Wort der Liste oder ein Englisch Wörterbuch und finden Sie die entsprechenden hash-Werte und dann Durchlaufen, wenn die Liste für jedes Passwort nach einem match sucht.
md5(), sha0 und sha1() sind alle anfällig für eine hash-Kollision Angriffe und sollte nie verwendet werden, für etwas Sicherheit. Sondern jedes Mitglied der sha-2-Familie wie sha-256 verwendet werden soll.