Was versteht man unter hash verfahren

Es ist oftmals Blödsinn was in Wikipedia steht, so auch in diesem Fall. Ein Hash-Algorithmus ist im Prinzip nichts anderes als eine Prüfsumme, die aus einer Zeichen- oder Binärbytefolge ermittelt wird mit der besonderen Anforderung, dass die Veränderung eines einzelnen Zeichens eine komplett andere Hash-Summe ergeben muss.

5 Antworten zur Frage

Bewertung: 4 von 10 mit 1556 Stimmen

Videos zum Thema
YouTube Videos

Was versteht man unter einem Hash-Verfahren?

Es ist nicht totaler Bloedsin: Hash-Tabellen koennen auch fuer Suchen benutzt werden - aber im Prinzip hast du natuerlich Recht: Die Suche ist nur eine Anwendung des "Hashens", Hashen selbst ist - wie du beschrieben hast - etwas ganz anderes.
Die Existenz von Hashtables sind mir bewusst. Wer unter.NET entwickelt kommt definitiv nicht ohne Hashtables aus. Aber es war ja nun nicht die Frage was Hashtables sind.
Wobei die Suche, so wie von kuechenkai beschrieben auch nicht auf Basis von Hashes arbeiten würde, sondern durch ein Vektorprinzip welches alle vorhergehenden möglichen Elemente und nachfolgenden Elemente in einer Art Karte abbilden würde.
Soviel Ahnung von Hashtabellen hab ich dann doch noch nicht - das dauert noch ein paar Semester, bis ich da bin
Ich wollte dich nicht kritisieren - also bitte nicht angegriffen fuehlen. Wollte dich nur ergaenzen und Wiki ein bisschen verteidigen
Ich gehe mal davon aus, dass kuechenkai einfach ne unguenstige Stelle aus Wiki zitiert hat - denn der Artikel zu Hashs ist an sich eigentlich ziemlich korrekt.
"Eine Hash-Funktion oder Streuwertfunktion ist eine Funktion bzw. Abbildung, die zu einer Eingabe aus einer üblicherweise großen Quellmenge eine Ausgabe, den Hashcode, erzeugt, meist aus einer kleineren Zielmenge."
Hash – Wikipedia
Aber ist im endeffekt ja auch egal.
Wollte nur klar stellen, dass ich dich nicht angreifen wollte oder so
Hashen ist ein sehr interessanter Algorithmus.
Die Idee ist folgende:
Wie kann ich einer Datei eine moeglichst eindeutige, kurze signatur zuweisen?
Dazu wird die Datei eingelesen und ein Code von bestimmter Laenge erzeugt. "bestimmte Laenge" bedeutet, dass der Code fuer eine 2GB datei genauso lang ist wie fuer eine 2KB Datei.
Das Ziel ist dabei, dass kleine Aenderungen in der Datei einen grossen Einfluss auf den erzeugten Code hat.
Es ist eine Abbildung n->H, wobei mag>>mag gilt. Das bedeutet, dass eine unendlich grosse Menge von verschiedenen Eingaben eine ziemlich kleine Menge von Ausgaben erzeugt.
Daraus folgt, dass es sein kann, dass zwei total unterschiedliche Dateien den gleichen Hash-Code haben. Dies wird allerdings versucht zu vermeiden, ist aber nie ganz auszuschliessen.
Konnte ich dir damit weiterhelfen?
Wenn nicht - dann einfach nochmal nachfragen
,
SaM
Das Hashverfahren ist ein Algorithmus zum Suchen von Datenobjekten in großen Datenmengen. Es basiert auf der Idee, dass eine mathematische Funktion die Position eines Objektes in einer Tabelle berechnet. Dadurch erübrigt sich die Durchsuchung vieler Datenobjekte, bis das Zielobjekt gefunden wurde.
wiki
In der Informatik bezeichnet man als Hashtabelle bzw. Streuwerttabelle eine spezielle Indexstruktur. Hashtabellen eignen sich vor allem dazu, Datenelemente in einer großen Datenmenge aufzufinden. Hashtabellen stehen dabei in Konkurrenz zu Baumstrukturen und der Skip-List, die ebenfalls als Indexstruktur dienen können. Beim Einsatz einer Hashtabelle zur Suche in Datenmengen spricht man auch von einem Hashverfahren oder Streuspeicherverfahren. Hashtabelle – Wikipedia.