Wie können Hashes verwendet werden, um Versionsänderungen in Dokumenten effizient zu verfolgen?


2

Ich habe gehört, dass Open-Source-Software diese verwendet. Werden sie für eine ganze Datei berechnet? Wenn Sie einen Buchstaben von Moby Dick ändern würden, wäre der Hash anders?

Ich bin neugierig darauf, Änderungen in einigen Dateien zu verfolgen, die zwischen 1k und 1M Zeichen enthalten.

Gibt es hier einen praktischen Überblick darüber, wie lange es dauert, einen Hash für 1k- bzw. 1M-Char-Dateien zu berechnen? Sollte ich mir wegen dieses Problems Sorgen machen?


Für diese Dateigrößen sollten Sie sich keine Sorgen machen müssen.
Louis

Antworten:


2

Guck dir das an: http://en.wikipedia.org/wiki/MD5#Applications

MD5 war der erste weit verbreitete Hash, der für die gesamte Datei berechnet wurde. Es weist einige schwerwiegende Sicherheitsprobleme auf, weshalb es nicht mehr so ​​häufig verwendet wird. Wenn Sie in MD5 nachlesen und nachlesen, wie es verwendet wurde, finden Sie die Antworten auf die meisten, wenn nicht sogar auf alle Ihre nachfolgenden Fragen.

Aber vereinfacht ausgedrückt, wenn Sie Inhalte haben ein Wenn Sie eine gute Hash-Funktion anwenden, erhalten Sie einen binären Hash-Wert x . Nehmen Sie Änderungen am Inhalt vor ein , egal wie groß oder klein, um Inhalte zu generieren ein' . Der Hashwert des Inhalts ein' ist jetzt ein neuer Hashwert x ' mit jedem bisschen von x ' mit einer 50% igen Chance, sich vom entsprechenden Bit zu unterscheiden x .

Dies bedeutet natürlich, wenn Sie einen 32-Bit-Hash verwenden, nachdem Sie Änderungen an vorgenommen haben ein Sie haben eine Wahrscheinlichkeit von 2 ^ -32 (0,000000023283%), immer noch den exakt gleichen Hash-Wert zu erhalten. Aus diesem Grund sind Hashes normalerweise länger als 32 Bit.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.