Was bewirkt, dass diese beiden scheinbar identischen Dateien unterschiedliche Hashwerte haben?

465
Pedro A

Ich kann nicht herausfinden, warum die folgenden zwei Dateien unterschiedliche Hashwerte 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

Ich habe bis jetzt verschiedene Hilfsprogramme ausprobiert, aber alle behaupten, dass die Dateien identisch sind.

Ich habe beide Dateien heruntergeladen und mit Sublime Text 3 und Visual Studio Code überprüft. Beide scheinen UTF-8 und CRLF zu sein, aber sobald ich die erste öffne und Strg + S drücke (ohne etwas zu ändern!), Ändert sich ihr Hash dasselbe wie das zweite sein.

Was passiert hier?

BEARBEITEN, um zu klären: Ich möchte wissen, was sich zwischen den Dateien unterscheidet. Ich weiß, es ist etwas mit Whitespace-Zeichen oder Zeilenenden, aber was? Welche Linie? Woher? Welcher Charakter?

0

2 Antworten auf die Frage

2
Alex

Zeile 1 in Version 1.2.1 endete als Linux EOL, während Version 1.2.2 in derselben Zeile Fensterzeilen endet.
(Linux wird als Linientrennzeichen 0x0A verwendet, während Windows 0x0D, 0x0A verwendet)

Dasselbe gilt für die Zeilen 3, 4, 59, 60 und 61.

Das zur Erkennung des Problems verwendete Tool ist WinMerge.

1
DrMoishe Pippik

Schauen Sie in einen Hex-Editor: Eine Datei verwendet 0x0a (LF), um das Zeilenende zu markieren, die andere verwendet 0x0d0a (CR / LF). Verwenden Sie ein Tool wie z. B. Notepad ++, um Dateien nach der gleichen Newline-Konvention zu ändern .

Hex view of 2 files

Was mich überrascht hat, ist, dass es nicht alle Zeilen sind, aber nur wenige, richtig? Nur die Zeilen 1, 3, 4, 59, 60 und 61, aus irgendeinem Grund (wie in der anderen Antwort gezeigt) Pedro A vor 5 Jahren 0
Vielleicht wurden Dateien von einem Betriebssystem in ein anderes verschoben und dort bearbeitet? DrMoishe Pippik vor 5 Jahren 0
Hmmm. Es könnte sein. Vielen Dank! Pedro A vor 5 Jahren 0