ตัวตรวจสอบแฮชไฟล์

ไฟล์

นี่อาจเปรียบเทียบกับ "ความคาดหวังที่ยั่งยืน" ด้านล่างนี้ อัลกอริทึมต้องคํานวณใหม่

คำนวณแฮช MD5, SHA-1, SHA-256 หรือ SHA-512 ของไฟล์ในเครื่องในเบราว์เซอร์ คัดลอกผลลัพธ์ด้วยคลิกเดียวหรือวางค่าที่คาดหวังเพื่อเปรียบเทียบอัตโนมัติ เหมาะสำหรับยืนยันการดาวน์โหลด เปรียบเทียบเวอร์ชัน และกระบวนการหลักฐานดิจิทัล

คำแนะนำที่เกี่ยวข้อง

แฮชไฟล์คืออะไร?

แฮชไฟล์คือ 'ลายนิ้วมือดิจิทัล' ที่มีความยาวคงที่ ซึ่งเกิดจากการรันอัลกอริทึมแฮชบนไบต์ของไฟล์ ไฟล์เดียวกันจะให้แฮชเดียวกันเสมอ และการเปลี่ยนแปลงใดๆ ในเนื้อหาจะทำให้แฮชเปลี่ยนไปอย่างสิ้นเชิง

การใช้งานทั่วไป: ① ตรวจสอบไฟล์ที่ดาวน์โหลดโดยเปรียบเทียบแฮชที่เผยแพร่บนเว็บทางการ ② การควบคุมเวอร์ชัน Git / SVN ใช้ SHA-1 ระบุทุก commit ③ การเปรียบเทียบไฟล์เพื่อตรวจสอบอย่างรวดเร็วว่าไฟล์สองไฟล์เหมือนกันหรือไม่ ④ นิติดิจิทัล แฮชทำหน้าที่เป็นหลักฐานว่าเอกสารอิเล็กทรอนิกส์ไม่ถูกแก้ไข

อัลกอริทึมที่เครื่องมือนี้รองรับ: MD5 (128 บิต ไม่ทนต่อการชนกันอีกต่อไป), SHA-1 (160 บิต Google เปิดเผยการชนกันต่อสาธารณะ), SHA-256 (256 บิต ตัวเลือกหลักในปัจจุบัน) และตระกูล SHA-512 (512 บิต / SHA-384 / SHA-512/256 ความปลอดภัยสูงกว่า) แฮชไม่ใช่การเข้ารหัส: แฮชเป็นทางเดียวและไม่สามารถย้อนกลับไปยังเนื้อหาไฟล์ได้

กรณีการใช้งาน

  • หลังจากดาวน์โหลดซอฟต์แวร์ อิมเมจดิสก์ หรือเฟิร์มแวร์ เปรียบเทียบ MD5 / SHA-256 ของไฟล์กับที่เผยแพร่บนเว็บทางการเพื่อยืนยันว่าไม่ถูกดัดแปลงหรือเสียหายระหว่างการถ่ายโอน
  • ส่งไฟล์ขนาดใหญ่ให้เพื่อนร่วมงานและแชร์แฮชล่วงหน้าเพื่อให้ผู้รับตรวจสอบอีกครั้งหลังรับและยืนยันว่าการถ่ายโอนสะอาด
  • สร้างที่เก็บแฮช SHA-256 สำหรับสัญญา ใบเสนอราคา การสแกน และหลักฐานดิจิทัลอื่นๆ เพื่อพิสูจน์ว่าไฟล์ไม่ถูกแก้ไขในภายหลัง
  • เปรียบเทียบสองเวอร์ชันของสินทรัพย์เดียวกัน (ก่อนและหลังแก้ไข) โดยแฮชก่อนเพื่อยืนยันว่ายังคงเหมือนกันทุกไบต์
  • รันการตรวจสอบความสอดคล้องระหว่างคลังเก็บ Git ชุดสำรอง หรือโหนดมิรเรอร์: SHA-256 เพียงครั้งเดียวก็เพียงพอที่จะยืนยันว่าทุกอย่างซิงโครไนซ์

วิธีการใช้งาน

  1. คลิกพื้นที่อัปโหลดและเลือกไฟล์ในเครื่องใดก็ได้ (ทีละไฟล์)
  2. เครื่องมือเริ่มคำนวณแฮชโดยอัตโนมัติ แถบความคืบหน้าอัปเดตเปอร์เซ็นต์แบบสด ไฟล์ที่ใหญ่กว่าจะใช้เวลามากกว่า
  3. ตรวจสอบแฮชทางด้านขวาและสลับอัลกอริทึม ตัวพิมพ์ใหญ่/เล็ก หรือรูปแบบตระกูล SHA-512 เมื่อใดก็ตามที่ต้องการ
  4. วางแฮชที่คาดหวังที่เผยแพร่โดยแหล่งทางการ (หรือส่งโดยผู้ติดต่อของคุณ) ลงในช่อง 'ค่าที่คาดหวัง' เครื่องมือจะแสดงทันทีว่าตรงกันหรือไม่
  5. คลิก 'คัดลอกแฮช' เพื่อบันทึกผลลัพธ์ไปยังคลิปบอร์ด หรือคลิก 'คำนวณใหม่' เพื่อรีเฟรชไฟล์ปัจจุบัน

คุณสมบัติ

  • การคำนวณในเครื่องปกป้องความเป็นส่วนตัว: ทุกแฮชถูกคำนวณในเบราว์เซอร์ปัจจุบันของคุณ ไฟล์จะไม่ถูกอัปโหลดไปยังเซิร์ฟเวอร์
  • อัลกอริทึมหลักสี่ตัว: MD5, SHA-1, SHA-256 และ SHA-512 ครอบคลุมการตรวจสอบการดาวน์โหลดและการทำลายนิ้วมือไฟล์ส่วนใหญ่
  • รูปแบบตระกูล SHA-512: สลับระหว่าง SHA-512, SHA-384 และ SHA-512/256 เพื่อให้ตรงกับค่าที่คาดหวังที่มีความยาวต่างกัน
  • สลับตัวพิมพ์ใหญ่/เล็กด้วยคลิกเดียว: ตัวพิมพ์เล็กเป็นค่าเริ่มต้น ทำเครื่องหมายเพื่อเปลี่ยนเป็นตัวพิมพ์ใหญ่เมื่อเปรียบเทียบกับเครื่องมือ Windows หรือแฮชทางการที่เป็นตัวพิมพ์ใหญ่
  • เปรียบเทียบกับค่าที่คาดหวังอัตโนมัติ: วางแฮชทางการลงในช่อง 'ค่าที่คาดหวัง' เครื่องมือจะแสดงทันทีว่าแฮชตรงกันหรือไม่
  • แถบความคืบหน้าแบบเรียลไทม์: ไฟล์ขนาดใหญ่ถูกอ่านเป็นชิ้นส่วน เปอร์เซ็นต์อัปเดตสด เบราว์เซอร์ยังคงตอบสนอง
  • คัดลอกแฮชด้วยคลิกเดียว: ปุ่มคัดลอกนำผลลัพธ์ไปยังคลิปบอร์ดเพื่อวางลงในสเปรดชีต ตั๋ว หรือข้อความแชท

Best Practices

ควรใช้ SHA-256 สำหรับการตรวจสอบการดาวน์โหลด

ซอฟต์แวร์สมัยใหม่ ลินุกซ์ดิสทริบิวชัน และอิมเมจคอนเทนเนอร์เกือบทั้งหมดเผยแพร่ SHA-256 ใช้ MD5 ก็ต่อเมื่อแหล่งทางการเผยแพร่ MD5 อย่างชัดเจนและคุณสามารถเชื่อถือแหล่งนั้นได้ มิฉะนั้นให้หลีกเลี่ยงความเสี่ยงที่มาพร้อมกับอัลกอริทึมที่อ่อนแอ

ละเว้นตัวพิมพ์เมื่อเปรียบเทียบแฮช

อัลกอริทึมแฮชไม่มีแนวคิดเรื่องตัวพิมพ์ เครื่องมือนี้ส่งออกตัวพิมพ์เล็กเป็นค่าเริ่มต้น แต่บรรทัดคำสั่ง Linux / macOS มักจะแสดงตัวพิมพ์เล็กในขณะที่ตัวตรวจสอบ Windows บางครั้งแสดงตัวพิมพ์ใหญ่ เมื่อค่าดูแตกต่าง ให้ตรวจสอบก่อนว่าความแตกต่างเพียงอย่างเดียวคือตัวพิมพ์ก่อนที่จะสันนิษฐานว่าไฟล์เสียหาย

แฮชไฟล์ทั้งหมด ไม่ใช่แค่บางส่วน

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

รวมแฮชและลายเซ็นสำหรับขั้นตอนหลักฐาน

แฮช SHA-256 พิสูจน์เพียงความสมบูรณ์ของไฟล์ ไม่ใช่ผู้ที่สร้างไฟล์ เมื่อคุณต้องการหลักฐานภายนอก ให้ซ้อนแฮชด้วยลายเซ็นดิจิทัลของผู้ส่งหรือการประทับเวลาจากบุคคลที่สามที่เชื่อถือได้ แฮชเปล่าไม่ใช่ห่วงโซ่หลักฐานที่สมบูรณ์

เปลี่ยนเครื่องมือสำหรับไฟล์ขนาดใหญ่มากหรือฮาร์ดแวร์ที่อ่อนแอ

เครื่องมือนี้จัดการไฟล์ได้ดีสูงสุดประมาณหนึ่งกิกะไบต์ สำหรับไฟล์ขนาดใหญ่มากหรืออุปกรณ์รุ่นเก่า การแฮชแบบชิ้นส่วนจะช้าลง ในกรณีนั้นให้ใช้เครื่องมือบรรทัดคำสั่งในเครื่อง เช่น openssl dgst, certutil หรือ sha256sum ในตัวระบบ

ใช้ HMAC เมื่อคุณต้องการยืนยันตัวผู้ส่งด้วย

แฮชไฟล์พิสูจน์เพียงความสมบูรณ์ของเนื้อหา ไม่ใช่ผู้ที่ส่ง หากคุณต้องการยืนยันว่าไฟล์มาจากแหล่งที่เชื่อถือได้และไม่ถูกแก้ไข ให้ใช้ตัวสร้าง HMAC กับคีย์ที่ใช้ร่วมกันแทนแฮชไฟล์ธรรมดา

คำถามที่พบบ่อย

ควรเลือก MD5 หรือ SHA-256?

เลือก SHA-256 สำหรับการตรวจสอบการดาวน์โหลดในชีวิตประจำวัน การเปรียบเทียบเวอร์ชัน และการกำจัดข้อมูลซ้ำซ้อน ใช้ MD5 เมื่ออีกฝ่ายให้เฉพาะ MD5 หรือเมื่อสถานการณ์ไม่เกี่ยวกับความปลอดภัยอย่างชัดเจน (เช่น การกำจัดข้อมูลซ้ำซ้อนในเครื่อง) สำหรับกรณีที่เกี่ยวกับความปลอดภัย (หลักฐานดิจิทัล เฟิร์มแวร์) ให้ใช้ SHA-256 หรือสูงกว่า

ความแตกต่างของตัวพิมพ์ในแฮชนับเป็นการตรวจสอบที่ล้มเหลวหรือไม่?

ไม่นับ อัลกอริทึมแฮชไม่มีแนวคิดเรื่องตัวพิมพ์ เป็นเพียงรูปแบบการแสดงผลที่แตกต่าง เครื่องมือนี้ส่งออกตัวพิมพ์เล็กเป็นค่าเริ่มต้น หากค่าที่คาดหวังของคุณเป็นตัวพิมพ์ใหญ่ ให้ทำเครื่องหมาย 'ผลลัพธ์ตัวพิมพ์ใหญ่' แล้วคำนวณใหม่ จากนั้นเปรียบเทียบตัวอักษรโดยไม่สนตัวพิมพ์

ทำไมแฮชของฉันไม่ตรงกับที่เผยแพร่อย่างเป็นทางการ?

เหตุผลทั่วไป: ① ไฟล์เสียหายระหว่างการดาวน์โหลด ดาวน์โหลดใหม่ ② คุณดาวน์โหลดเวอร์ชันที่ต่างจากที่เผยแพร่แฮช (ตรวจสอบเวอร์ชัน ชื่อไฟล์ หมายเลขวอลลุ่ม) ③ คุณแฮชเพียงบางส่วนของเนื้อหา (เช่น หลังจากแตกไฟล์เก็บถาวร) ④ แหล่งทางการเผยแพร่อัลกอริทึมอื่น (คุณใช้ MD5 ในขณะที่พวกเขาเผยแพร่ SHA-256)

เครื่องมือนี้รองรับ SHA-224, BLAKE2 หรือ SM3 หรือไม่?

ขณะนี้รองรับ MD5, SHA-1, SHA-256 และตระกูล SHA-512 (SHA-512, SHA-384, SHA-512/256) SHA-224, BLAKE2, SM3 และอัลกอริทึมที่คล้ายกันไม่รองรับ หากคุณต้องการอัลกอริทึมใดอัลกอริทึมหนึ่งเหล่านี้ ให้ใช้เครื่องมือบรรทัดคำสั่งในเครื่อง เช่น openssl หรือ sha256sum

ไฟล์ของฉันถูกอัปโหลดไปยังเซิร์ฟเวอร์หรือไม่? ปลอดภัยหรือไม่?

ไม่ เครื่องมือนี้ใช้ crypto-js เพื่อคำนวณแฮชในเครื่องภายในเบราว์เซอร์ของคุณเป็นชิ้นส่วน ดังนั้นเนื้อหาไฟล์จะอยู่ในอุปกรณ์ของคุณและในหน่วยความจำของเบราว์เซอร์ ไม่มีอะไรถูกส่งไปยังเซิร์ฟเวอร์ระยะไกลใดๆ ปลอดภัยที่จะใช้กับเอกสารที่ละเอียดอ่อน สัญญา และเฟิร์มแวร์

สามารถแฮชหลายไฟล์พร้อมกันได้หรือไม่?

หน้าปัจจุบันประมวลผลทีละไฟล์ สำหรับการตรวจสอบเป็นชุด ให้ทำซ้ำขั้นตอนหรือเปลี่ยนไปใช้เครื่องมือบรรทัดคำสั่งในเครื่อง (certutil -hashfile บน Windows, md5sum / shasum บน macOS / Linux) ที่สามารถแสดงแฮชสำหรับหลายไฟล์ในการรันครั้งเดียว

ควรเลือก SHA-512 หรือ SHA-384?

เลือก SHA-384 เมื่ออีกฝ่ายเผยแพร่ SHA-384 อย่างชัดเจน มิฉะนั้นเลือก SHA-512 เป็นค่าเริ่มต้นหากคุณต้องการความปลอดภัยที่สูงกว่า SHA-512/256 ให้ผลลัพธ์ 64 ตัวอักษรเช่นเดียวกับ SHA-256 แต่ใช้ฟังก์ชันบีบอัดของ SHA-512 ภายใน มีประโยชน์เมื่อระบบต้องการความยาว SHA-256 แต่คุณต้องการความทนทานต่อการชนกันระดับ SHA-512

ความแตกต่างระหว่างแฮชและลายเซ็นดิจิทัลคืออะไร?

แฮชพิสูจน์เพียงว่าเนื้อหาไฟล์ยังคงสมบูรณ์ ไม่สามารถพิสูจน์ได้ว่าใครเป็นผู้ส่ง ลายเซ็นดิจิทัลคือแฮชบวกการเข้ารหัสด้วยคีย์ส่วนตัวของผู้ส่ง ผู้ตรวจสอบจะถอดรหัสด้วยคีย์สาธารณะและตรวจสอบทั้งความสมบูรณ์และตัวตนของผู้ส่งพร้อมกัน ใช้การตรวจสอบลายเซ็นนอกเหนือจากแฮชเมื่อใดก็ตามที่คุณต้องการพิสูจน์แหล่งที่มา

การแฮชไฟล์ขนาดใหญ่จะทำให้เบราว์เซอร์ค้างหรือไม่?

เครื่องมือนี้อ่านไฟล์เป็นชิ้นส่วนสตรีมมิ่ง 2 MB ดังนั้นไฟล์ตั้งแต่สิบ MB ถึงหลายร้อย MB จึงเสร็จเร็ว เหนือช่วงกิกะไบต์หรือบนฮาร์ดแวร์ที่อ่อนแอกว่า การรอจะเห็นได้ชัด ในกรณีนั้นให้ใช้ยูทิลิตี้บรรทัดคำสั่งในตัวของระบบหรือ openssl สำหรับการแฮชไฟล์ขนาดใหญ่

การแก้ไขปัญหา

แฮชไม่ตรงกับทางการ

ขั้นแรก ยืนยันว่าคุณดาวน์โหลดเวอร์ชันที่แฮชถูกเผยแพร่ให้ (ชื่อไฟล์ หมายเลขเวอร์ชัน หมายเลขวอลลุ่ม) จากนั้นตรวจสอบว่าตัวพิมพ์แตกต่างกันเท่านั้นและคุณแฮชไฟล์ทั้งหมด หากทุกอย่างตรงกันและแฮชยังคงแตกต่าง ให้ดาวน์โหลดไฟล์ใหม่ อาจเสียหายระหว่างการถ่ายโอน

การแฮชไฟล์ขนาดใหญ่ช้า

เครื่องมือนี้ใช้ชิ้นส่วนสตรีมมิ่ง 2 MB ดังนั้นไฟล์ที่มีขนาดหลายร้อย MB มักจะเสร็จภายในไม่กี่วินาที เหนือช่วงกิกะไบต์ ให้เปลี่ยนไปใช้บรรทัดคำสั่ง: certutil -hashfile <ไฟล์> SHA256 บน Windows หรือ shasum -a 256 <ไฟล์> บน macOS / Linux

การสลับเป็นตัวพิมพ์ใหญ่ทำให้ค่าแฮชเปลี่ยน

แฮชเองไม่เปลี่ยน เป็นเพียงตัวพิมพ์ของตัวอักษร ละเว้นตัวพิมพ์เมื่อเปรียบเทียบ หรือปรับทั้งค่าที่คาดหวังและผลลัพธ์ให้เป็นตัวพิมพ์เดียวกันก่อนเปรียบเทียบ

ผลลัพธ์ไม่รีเฟรชหลังจากสลับอัลกอริทึม

เครื่องมือคำนวณแฮชใหม่โดยอัตโนมัติเมื่อคุณเปลี่ยนอัลกอริทึมหรือตัวเลือกตัวพิมพ์ หากยังไม่รีเฟรช ให้คลิกปุ่ม 'คำนวณใหม่' เพื่อบังคับให้รันใหม่บนไฟล์ปัจจุบัน

อภิธานศัพท์

MD5
อัลกอริทึมแฮชที่ให้ผลลัพธ์ 128 บิต (32 ตัวอักษรฐานสิบหก) เร็วแต่ไม่ทนต่อการชนกันอีกต่อไป (Wang et al. ถอดรหัสในปี 2004) เหมาะสำหรับลายนิ้วมือไฟล์หรือการกำจัดข้อมูลซ้ำซ้อน ไม่เหมาะกับการใช้งานที่เกี่ยวกับความปลอดภัย
SHA-1
ให้ผลลัพธ์ 160 บิต (40 ตัวอักษรฐานสิบหก) Google เปิดเผยการชนกันของ SHA-1 ต่อสาธารณะในปี 2017 เบราว์เซอร์และระบบสมัยใหม่ไม่แนะนำอีกต่อไป แม้ว่าประวัติเก่าของ Git ยังคงใช้อยู่
SHA-256
สมาชิกของตระกูล SHA-2 ให้ผลลัพธ์ 256 บิต (64 ตัวอักษรฐานสิบหก) ตัวเลือกหลักในปัจจุบัน ใช้โดย HTTPS, Bitcoin, คลังเก็บ Git สมัยใหม่ และอื่นๆ อีกมากมาย
SHA-512
ให้ผลลัพธ์ 512 บิต (128 ตัวอักษรฐานสิบหก) และทนต่อการชนกันมากกว่า SHA-256 บนไฟล์ยาวยังเร็วกว่าเล็กน้อย เครื่องมือนี้ยังรองรับ SHA-384 (96 ตัวอักษร) และ SHA-512/256 (64 ตัวอักษร ความยาวเท่ากับ SHA-256 แต่ใช้ฟังก์ชันบีบอัดของ SHA-512)
เลขฐานสิบหก (Hex)
รูปแบบที่พบบ่อยที่สุดในการแสดงแฮช ใช้ตัวอักษร 0-9 และ a-f สองตัวอักษรต่อไบต์ เครื่องมือนี้รองรับการสลับระหว่างผลลัพธ์ตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก
การชนกัน
เมื่อไฟล์ที่แตกต่างกันสองไฟล์ให้แฮชเดียวกัน ความทนทานต่อการชนกันเป็นคุณสมบัติหลักด้านความปลอดภัยของอัลกอริทึมแฮช การชนกันที่ใช้งานได้จริงถูกพิสูจน์แล้วสำหรับทั้ง MD5 และ SHA-1
การคำนวณในเครื่อง
การคำนวณแฮชทั้งหมดทำงานภายในเบราว์เซอร์ปัจจุบันและหน่วยความจำของอุปกรณ์ เนื้อหาไฟล์จะไม่ถูกอัปโหลดไปยังเซิร์ฟเวอร์ระยะไกล ทำให้เครื่องมือนี้เหมาะสำหรับเอกสารที่ละเอียดอ่อน

อัลกอริทึมที่เครื่องมือนี้รองรับ

เมื่อเลือกอัลกอริทึม ให้ตรวจสอบก่อนว่าอีกฝ่ายเผยแพร่แฮชใด และสถานการณ์ของคุณมีความละเอียดอ่อนด้านความปลอดภัยหรือไม่

อัลกอริทึมความยาวผลลัพธ์ความปลอดภัยสถานการณ์ทั่วไป
MD5128 บิต / 32 ตัวอักษรอ่อนแอ (การชนกันถูกถอดรหัส)การกำจัดข้อมูลซ้ำซ้อนในเครื่อง ความเข้ากันได้แบบเดิม
SHA-1160 บิต / 40 ตัวอักษรอ่อนแอ (การชนกันถูกถอดรหัส)ความเข้ากันได้กับประวัติ Git
SHA-256256 บิต / 64 ตัวอักษรแข็งแกร่งการดาวน์โหลด เฟิร์มแวร์ หลักฐาน (แนะนำ)
SHA-384384 บิต / 96 ตัวอักษรแข็งแกร่งความปลอดภัยสูง กำหนดโดยโปรโตคอล
SHA-512512 บิต / 128 ตัวอักษรแข็งแกร่งกว่าความปลอดภัยสูง
SHA-512/256256 บิต / 64 ตัวอักษรแข็งแกร่งต้องการความยาว SHA-256 แต่ใช้แกน SHA-512

อัลกอริทึมที่แนะนำตามสถานการณ์

อัลกอริทึมที่ดีที่สุดสำหรับไฟล์เดียวกันจะแตกต่างกันไปตามสถานการณ์ที่คุณใช้

สถานการณ์อัลกอริทึมที่แนะนำคุณค่าหลัก
การตรวจสอบการดาวน์โหลด (ซอฟต์แวร์ อิมเมจ เฟิร์มแวร์)SHA-256สากล รองรับอย่างกว้างขวาง
ลายนิ้วมือ commit ของ GitSHA-1ความเข้ากันได้กับประวัติ
การกำจัดข้อมูลซ้ำซ้อนในเครื่องMD5เร็ว ความเสี่ยงต่ำ
หลักฐานดิจิทัลSHA-256 + ลายเซ็นแฮชบวกลายเซ็น ใช้ได้ในศาล
การตรวจสอบความสมบูรณ์ของการถ่ายโอนSHA-256ทั้งสองฝ่ายคำนวณได้ เปรียบเทียบง่าย
โปรโตคอลต้องการความยาวเฉพาะSHA-384 / SHA-512/256ตรงตามข้อจำกัดของโปรโตคอล

Authoritative References