/ / Warum haben diese beiden scheinbar identischen Dateien unterschiedliche Hashes? - Kodierung, Zeichenkodierung, Diff, Hashing

Was f√ľhrt dazu, dass diese beiden anscheinend identischen Dateien unterschiedliche Hashes haben? - Kodierung, Zeichenkodierung, Diff, Hashing

Ich kann nicht herausfinden, warum die folgenden beiden Dateien unterschiedliche Hashes ergeben (SHA1, CRC32, SHA384, was auch immer):

https://cdn.jsdelivr.net/npm/jsonify-error@1.2.1/dist/jsonify-error.js

https://cdn.jsdelivr.net/npm/jsonify-error@1.2.2/dist/jsonify-error.js

Bisher habe ich verschiedene Diff-Dienstprogramme ausprobiert, aber alle behaupten, die Dateien seien identisch.

Ich habe beide Dateien heruntergeladen und mit √ľberpr√ľftSublime Text 3 und Visual Studio Code scheinen beide utf-8, CRLF zu sein, aber sobald ich den ersten √∂ffne und Strg + S dr√ľcke (ohne etwas zu √§ndern!), √Ąndert sich der Hash wie der zweite .

Was passiert hier?

BEARBEITEN, um zu verdeutlichen: Ich möchte wissen, was zwischen den Dateien unterschiedlich ist. Ich weiß, es ist etwas mit Leerzeichen oder Zeilenenden, aber was? Welche Linie? Wo? Welcher Charakter?

Antworten:

2 f√ľr Antwort ‚ĄĖ 1

Zeile 1 in Version 1.2.1 endete als Linux-EOL, während Version 1.2.2 in derselben Zeile das Zeilenende von Windows aufweist.
(Linux verwendet als Zeilentrennzeichen 0x0A, während Windows 0x0D, 0x0A verwendet)

Das gleiche gilt f√ľr die Zeilen 3, 4, 59, 60 und 61.

Das Tool, mit dem das Problem erkannt wurde, ist WinMerge.


1 f√ľr Antwort ‚ĄĖ 2

Schauen Sie in einem Hex-Editor nach: Eine Datei markiert das Zeilenende mit 0x0a (LF), die andere mit 0x0d0a (CR / LF). Verwenden Sie ein Werkzeug wie Notepad ++ um Dateien zu ändern Newline-Konvention, wenn du musst.

Hex-Ansicht von 2 Dateien