อะไรทำให้ไฟล์ที่เหมือนกันสองไฟล์นี้มีแฮชต่างกัน


0

ฉันไม่สามารถหาสาเหตุได้ว่าทำไมสองไฟล์ต่อไปนี้จึงทำให้แฮชแตกต่างกัน (SHA1, CRC32, SHA384, อะไรก็ตาม):

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

ฉันลองใช้งานยูทิลิตี้ต่างกันหลายครั้ง แต่พวกเขาทั้งหมดอ้างว่าไฟล์เหมือนกัน

ฉันดาวน์โหลดทั้งไฟล์และตรวจสอบด้วย Sublime Text 3 และ Visual Studio Code ทั้งคู่ดูเหมือนว่าเป็น UTF-8, CRLF แต่ทันทีที่ฉันเปิดไฟล์แรกและกด Ctrl + S บนมัน (โดยไม่เปลี่ยนอะไรเลย!) ให้เหมือนกับที่สอง

เกิดอะไรขึ้นที่นี่

แก้ไขเพื่อชี้แจง: ฉันต้องการทราบว่ามีความแตกต่างระหว่างไฟล์อย่างไร ฉันรู้ว่ามันเป็นสิ่งที่มีตัวละครช่องว่างหรือการสิ้นสุดบรรทัด แต่อะไร สายไหน ที่ไหน? ตัวละครไหน

คำตอบ:


2

บรรทัดที่ 1 ใน v1.2.1 สิ้นสุดลงเป็น linux EOL ในขณะที่ ver 1.2.2 ในบรรทัดเดียวกันมีการสิ้นสุดบรรทัดของ windows
(Linux ใช้เป็นตัวคั่นบรรทัด 0x0A ขณะที่ windows ใช้ 0x0D, 0x0A)

เช่นเดียวกับบรรทัด: 3, 4, 59, 60 และ 61

เครื่องมือที่ใช้ในการตรวจสอบปัญหาคือ WinMerge


1

ค้นหาตัวแก้ไข hex: หนึ่งไฟล์ใช้ 0x0a (LF) เพื่อทำเครื่องหมายจุดสิ้นสุดบรรทัดและอีกไฟล์ใช้ 0x0d0a (CR / LF) ใช้เครื่องมือเช่นNotepad ++เพื่อเปลี่ยนไฟล์เป็นระเบียบบรรทัดใหม่หากคุณต้อง

มุมมอง Hex ของ 2 ไฟล์


สิ่งที่ทำให้ฉันระวังคือมันไม่ใช่ทุกบรรทัด แต่มีเพียงบางส่วนเท่านั้นใช่ไหม บรรทัดที่ 1, 3, 4, 59, 60 และ 61, ด้วยเหตุผลแปลก ๆ บางอย่าง (ดังที่แสดงในคำตอบอื่น ๆ )
Pedro A

อาจมีการย้ายไฟล์จากระบบปฏิบัติการหนึ่งไปยังอีกระบบหนึ่งและแก้ไขที่นั่นหรือไม่
DrMoishe Pippik
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.