Meines Erachtens sind ein Hash-Code und eine Prüfsumme ähnliche Dinge - ein numerischer Wert, der für einen Datenblock berechnet wird, der relativ einzigartig.
d.h. die Wahrscheinlichkeit, dass zwei Datenblöcke den gleichen numerischen Hash-/Prüfsummenwert ergeben, ist so gering, dass sie für die Zwecke der Anwendung ignoriert werden kann.
Haben wir also zwei Worte für dieselbe Sache, oder gibt es wichtige Unterschiede zwischen Hashcodes und Prüfsummen?
4 Stimmen
Die Antworten werden im Folgenden zusammengefasst: Ein Hash-Code reduziert die Eingabe auf eine kleine Zahl, so dass die Wahrscheinlichkeit von Kollisionen minimiert wird. Eine Prüfsumme hingegen reduziert die Eingabe auf eine kleine Zahl, so dass die Wahrscheinlichkeit von Kollisionen minimiert wird. Sie können das eine vom anderen unterscheiden, indem Sie diese Beschreibung beliebig umformulieren.
4 Stimmen
@DanStahlke - Nein, das ist nicht das, was in den Antworten unten steht. Ja, sie reduzieren beide die Eingabe auf eine kleinere Zahl. Aber es gibt viele, viele Möglichkeiten, dies zu tun. Wie wählt man aus, welchen Algorithmus man verwendet? Das hängt von Ihrem Ziel ab. Um die ersten beiden Antworten zusammenzufassen: Der Ziel einer Prüfsumme ist " um die häufigsten Fehler zu erkennen ". Wählen Sie einen Algorithmus, der eine andere Prüfsumme ergibt, je nachdem, welche Fehler in Ihrem Szenario "am häufigsten" auftreten. Wenn Sie sich Sorgen machen, dass ein oder zwei Bits vertauscht werden, können Sie einen Algorithmus wählen, der garantiert Erkennung dieses spezifischen Fehlers! Dies ist ein sehr spezifischer Kompromiss.
1 Stimmen
@DanStahlke - auf der anderen Seite, Hash-Code deckt ein breites Spektrum an möglichen Kompromissen ab. Wenn wir einen Wert meinen, der bei der Erstellung einer Hashtabelle verwendet wird, wissen wir, dass es wird Kollisionen sein, und zwar jede Menge. Dies ist ein ganz anderer Kompromiss (als eine Prüfsumme). Wir versuchen, Kollisionen zu reduzieren im Durchschnitt . Wir übernehmen keine Garantie für irgendetwas. Es kann Eingaben geben, die sich nur um ein Bit unterscheiden, aber denselben Hash ergeben. Das ist völlig in Ordnung, wenn im Durchschnitt erhalten wir eine gute Verteilung der Hash-Werte. Für eine Prüfsumme wäre dies jedoch inakzeptabel.
0 Stimmen
Mehr darüber, wofür Hash-Werte verwendet werden und worauf sie abzielen. .