Entwickler-Ecke

Sonstiges (Delphi) - Was sind Hash's ??


scrooge - Fr 23.07.04 17:21
Titel: Was sind Hash's ??
Hi,

hab mal ne Frage zu Hash's: Hab mich bisher nicht wirklich damit beschäftigt und auch nur schätzungsweise erfahren, was das überhaupt ist. Daher wollt mich mal erkundigen, was das denn nun genau ist.

//Edit @Mods: Sorry, ist mir in die falsche Sparte gerutscht


Moderiert von user profile icontommie-lie: Topic aus Windows API verschoben am Fr 23.07.2004 um 17:57


MSCH - Fr 23.07.04 18:20

ne simple Zahl, meistens in HEX dargestellt, die einen eindeutigen Wert darstellt, der equivalent zur passenden Zeichenkette steht. Ein Hash ist einmalig, d.h. ein Hash-wert kann nur einer Zeichenkette zugeordnet werden und umgekehrt.


also: $23F5H443 entspr. Wasserratte (beispiel)

Ein Hash kann man mit verschiedenen Funktionen generieren. Schau dich da mal um, z.b. die Orpheus-Kompos, http://www.sourceforge.net, können sowas.

grez
msch


UC-Chewie - Fr 23.07.04 18:31

MSCH hat folgendes geschrieben:
Ein Hash ist einmalig, d.h. ein Hash-wert kann nur einer Zeichenkette zugeordnet werden und umgekehrt.


Nein. Wenn das so wäre, könnte man Daten auch wieder "enthashen". Außerdem sind Hash-Werte oft kürzer als die Daten, auf die der entsprechende Algorithmus angewandt wurde, deshalb speichern diese weniger Informationen ab. Ansonsten wären hashs ja eine Komprimiermethode.
Hashs sind nur Werte, die, je nach Anwendungsfall, genügend eindeutig sind. Es gibt schon Daten, die den glkeichen Hashwert erzuegen, aber sofern das nur selten vorkommt, ist das OK. Es kommt naürlich auch drauf an, was man mit einem Hash machen will. Ein Algorithmus für eine Hash-Table muss nicht so gut (d.h. so nahe wie möglich an der Eindeutigkeit) sein wie z.B. ein MD5-Hashwert, der oft als Verschlüsselung von Passwörtern im Web-Bereich eingesetzt wird.

Ein Beispiel für eine einfache und schlecht Hashfunktion wäre, den ersten Buchstaben eines Strings mit 4 zu multiplizieren, den zweiten mit 3, den dritten mit 2 und den vierten mit 1 und das dann alles zusammenaddieren.


MSCH - Fr 23.07.04 18:45

schaut mal hier: http://www.uni-protokolle.de/Lexikon/Hash-Funktion.html


maximus - Sa 24.07.04 11:15

In der system.pas steht ein sehr simpler hash algorythmus: ElfHashLowercase! Zum spielen ganz geil. Den musst du allerdings manuell aus dem implementationsteil kopieren.