เปรียบเทียบข้อความสองชุดด้วยแฮช
ป้อนข้อความที่ต้องการแฮช
ข้อความยาวสองชุดจะเหมือนกันก็ต่อเมื่อไดเจสต์ของทั้งคู่เหมือนกัน แฮชแต่ละข้อความด้วยอัลกอริทึมเดียวกัน แล้วเทียบค่าสั้น ๆ สองค่า อักขระที่ต่างกันเพียงตัวเดียว ช่องว่าง หรือการขึ้นบรรทัดใหม่ ก็ให้ผลลัพธ์ที่ต่างไปโดยสิ้นเชิง
วิธีตรวจว่าข้อความสองชุดตรงกันหรือไม่
-
1
แฮชข้อความแรก
วางข้อความแรก คง SHA-256 ไว้ แล้วสร้าง คัดลอกหรือจดไดเจสต์ไว้
-
2
เริ่มใหม่ด้วยข้อความที่สอง
แทนที่ข้อความด้วยเวอร์ชันที่สอง โดยใช้อัลกอริทึมเดิม
-
3
เทียบไดเจสต์
หากอักขระ 64 ตัวเหมือนกันทั้งหมด ข้อความทั้งสองคือไบต์ชุดเดียวกัน หากอักขระตัวใดต่างกัน ข้อความก็ต่างกัน
-
4
จำกัดขอบเขตเมื่อจำเป็น
เมื่อต่างกัน ให้แฮชส่วนย่อยของแต่ละข้อความเพื่อหาย่อหน้าที่เปลี่ยนไป
ทำไมแฮชจึงเป็นวิธีเปรียบเทียบที่เชื่อถือได้
ฟังก์ชันแฮชที่ดีจะส่งอินพุตที่ต่างกันแต่ละค่าไปยังไดเจสต์ที่ต่างกันและคาดเดาไม่ได้ สำหรับ SHA-256 ยังไม่มีวิธีที่รู้จักในการหาข้อความสองชุดที่ต่างกันซึ่งมีไดเจสต์เดียวกัน ดังนั้นไดเจสต์ที่ตรงกันหมายถึงเนื้อหาที่ตรงกันในทางปฏิบัติ ไดเจสต์ยังสั้น คุณจึงเทียบ 64 อักขระแทนที่จะเทียบทั้งหน้า
ตัวอย่าง
| ข้อความ | SHA-256 |
|---|---|
| hello | 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 |
| Hello | 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969 |
ข้อความทั้งสองต่างกันเพียงตัวอักษรพิมพ์ใหญ่หนึ่งตัว แต่ไดเจสต์ไม่มีความคล้ายกันให้เห็น ทำให้แม้การแก้ไขเล็กน้อยก็เห็นได้ชัด
อะไรนับเป็นความต่าง
การเปรียบเทียบทำทีละไบต์ สิ่งต่อไปนี้ล้วนเปลี่ยนไดเจสต์:
- ช่องว่างที่เกินมาท้ายบรรทัด
- การขึ้นบรรทัดใหม่ที่ท้ายข้อความ
- เครื่องหมายคำพูดหรือขีดที่ต่างชนิดแต่ดูเหมือนกันบนหน้าจอ
- อักษรที่มีวรรณยุกต์หรือเครื่องหมายกำกับที่พิมพ์ต่างวิธี เช่น พยัญชนะกับเครื่องหมายแยกต่างหาก เทียบกับอักษรที่รวมเป็นตัวเดียว
หากข้อความสองชุดดูเหมือนกันแต่ไดเจสต์ต่างกัน สาเหตุที่น่าจะเป็นคือความต่างที่มองไม่เห็นอย่างใดอย่างหนึ่งข้างต้น การแฮชข้อความทั้งที่มีและไม่มีการขึ้นบรรทัดใหม่ท้ายข้อความจะช่วยหาสาเหตุได้อย่างรวดเร็ว
การเลือกอัลกอริทึม
ใช้อัลกอริทึมเดียวกันกับข้อความทั้งสอง SHA-256 เป็นค่าเริ่มต้นที่ปลอดภัย MD5 และ SHA-1 ก็ตรวจพบความต่างทั่วไปได้ แต่ไม่ควรใช้หากมีคนอาจสร้างการชนกันโดยเจตนา CRC32 สั้นกว่าแต่อ่อนแอกว่าในชุดข้อมูลขนาดใหญ่
โปรดทราบว่าเครื่องมือนี้แสดงไดเจสต์ทั้งหมดของข้อความที่คุณแฮชไว้ในรายการเต็ม จึงสามารถเทียบหลายอัลกอริทึมได้ในรอบเดียว
ขั้นตอนการทำงานจริง
เก็บไดเจสต์ของข้อความต้นฉบับไว้ในโน้ตหรือตั๋วงาน เมื่อได้เวอร์ชันใหม่มา ให้แฮชด้วยอัลกอริทึมเดิมแล้วเทียบ วิธีนี้เหมาะกับข้อความอย่างส่วนของไฟล์ตั้งค่า ข้อกำหนดในสัญญา ถ้อยคำทางกฎหมาย และข้อความในเทมเพลต เมื่อคุณต้องพิสูจน์ว่าไม่มีอะไรเปลี่ยน มากกว่าต้องการรายการการเปลี่ยนแปลง
เมื่อไดเจสต์ไม่ตรงกัน
อย่าเพิ่งสรุปว่าเนื้อหาผิด ให้ตรวจสาเหตุพื้นฐานก่อน ข้อความที่คัดลอกมาอาจมีช่องว่างท้ายบรรทัด รูปแบบการขึ้นบรรทัดใหม่ที่ต่างกัน หรืออักขระที่ซ่อนอยู่จากหน้าเว็บหรือโปรแกรมประมวลผลคำ ให้ทำความสะอาดทั้งสองเวอร์ชันด้วยวิธีเดียวกันแล้วค่อยแฮช หากยังไม่ตรงกัน ให้แบ่งข้อความแต่ละชุดเป็นย่อหน้า แฮชทีละย่อหน้า แล้วเทียบเป็นคู่ไปเรื่อย ๆ จนพบย่อหน้าที่เปลี่ยน
คำถามที่พบบ่อย
กับ SHA-256 หรือ SHA-512 ถือว่าเหมือนกันในทางปฏิบัติ กับ MD5, SHA-1 หรือ CRC32 การตรงกันเป็นหลักฐานที่แข็งแรงว่าไม่ใช่ความผิดพลาดโดยบังเอิญ แต่ยังไม่พอต่อการสร้างการชนกันโดยเจตนา
สำคัญ บรรทัดเดิมที่สลับลำดับจะมีลำดับไบต์ต่างกัน ไดเจสต์จึงต่างกันด้วย
ไม่ได้ เครื่องมือแฮชข้อความทีละชุด และคุณต้องเทียบไดเจสต์เอง เครื่องมือจะไม่ไฮไลต์ความต่าง
นับว่าต่าง Hello และ hello มีไดเจสต์ต่างกัน หากไม่ต้องการให้ตัวพิมพ์มีผล ให้แปลงทั้งสองข้อความเป็นรูปแบบเดียวกันก่อน
เครื่องมือที่เกี่ยวข้อง
รหัสแปลงตัวเลขเป็นตัวอักษร
แปลงตัวเลขเป็นตัวอักษรและย้อนกลับด้วยรหัส A=1, B=2 (A1Z26) สำหรับปริศนา คำทาย และเบาะแสในห้องเอสเคปรูม
เครื่องมือเข้ารหัส Vigenère
เข้ารหัสและถอดรหัสข้อความด้วยรหัส Vigenère แบบคลาสสิกโดยใช้คำสำคัญ เลื่อนตัวอักษรละติน A-Z พร้อมคงตัวพิมพ์ใหญ่-เล็ก ช่องว่าง และเครื่องหมายวรรคตอน
ตัวสร้าง TOTP
สร้างรหัสผ่านแบบใช้ครั้งเดียวตามเวลา (RFC 6238) จากคีย์ลับ Base32 รองรับ SHA-1, SHA-256, SHA-512 จำนวน 6 ถึง 8 หลัก และช่วงเวลา 30 หรือ 60 วินาที
เครื่องแปลง Wei เป็น Ether
แปลง Wei เป็น Ether (ETH) ด้วยการคำนวณที่แม่นยำ ไม่มีการปัดเศษแบบจุดลอยตัว 1 ETH = 10^18 Wei
เครื่องมือเข้ารหัสข้อความ
เข้ารหัสและถอดรหัสข้อความโดยใช้ AES พร้อมรหัสผ่าน เพื่อให้มีเพียงผู้รับเท่านั้นที่สามารถอ่านข้อความได้
เครื่องสร้างแฮช SHA1
สร้างค่าแฮช SHA-1 (ยาว 40 ตัวอักษรเฮกซาเดซิมอล) จากข้อความใดๆ เหมาะอย่างยิ่งสำหรับการตรวจสอบค่าเช็คซัมแบบดั้งเดิม รหัสประจำออบเจกต์ของ Git และการตรวจสอบความสมบูรณ์ที่ไม่เกี่ยวข้องกับความปลอดภัย
เครื่องมือนี้มีให้บริการในภาษาอื่น
- Porównaj dwa teksty za pomocą skrótu [PL]
- So sánh hai văn bản bằng mã băm [VI]
- Bandingkan Dua Teks dengan Hash [ID]
- مقارنة نصين باستخدام التجزئة [AR]
- Zwei Texte mit einem Hash vergleichen [DE]
- ハッシュで 2 つのテキストを比較 [JA]
- Compare dois textos com um hash [PT]
- Comparar dos textos con un hash [ES]
- 해시로 두 텍스트 비교하기 [KO]
- Jämför två texter med en hash [SV]
- Comparer deux textes avec un hash [FR]
- Twee teksten vergelijken met een hash [NL]
- Compare Two Texts With a Hash [EN]
- Confrontare due testi con un hash [IT]
- Сравнение двух текстов по хешу [RU]
- Hash ile İki Metni Karşılaştırın [TR]
- 用哈希比较两段文本 [ZH]