ไฟล์ข้อความศูนย์ไบต์จะสร้างแฮชได้อย่างไรเมื่อแฮชด้วย sha1sum, sha256sum และอื่น ๆ โปรแกรมใดที่ hashing ข้อมูลเพื่อสร้างค่าแฮช?
ขอบคุณ
ไฟล์ข้อความศูนย์ไบต์จะสร้างแฮชได้อย่างไรเมื่อแฮชด้วย sha1sum, sha256sum และอื่น ๆ โปรแกรมใดที่ hashing ข้อมูลเพื่อสร้างค่าแฮช?
ขอบคุณ
คำตอบ:
อัลกอริทึมแฮชอ่านอินพุตและประมวลผลไม่ว่าจะมีข้อมูลใดอยู่ก็ตาม นี่เป็นพฤติกรรมที่ถูกต้องและต้องการและใช้เพื่อตรวจสอบว่าการใช้งานบางอย่างถูกต้องหรือไม่ สิ่งนี้นำไปสู่ "แฮชว่างเป็นโมฆะ" สำหรับอัลกอริธึมที่สำคัญทั้งหมด
หากต้องการรวม: da39a3ee5e6b4b0d3255bfef95601890afd80709 คือ sha1-hash สำหรับไฟล์ว่างทุกที่ซึ่งเป็นจริงด้วย null-hash ของ alrogrithms อื่น ๆ
ทุกขั้นตอนวิธีกัญชาในแฮด่วนมีการก่อสร้าง Merkle-Damgård ด้วยเหตุนี้จึงทำให้ข้อความมีขนาดบล็อกหลายขนาด
อัลกอริธึมของ Quick Hash ทำสิ่งนี้ได้โดยการผนวก1
บิตได้มาก0
เท่าที่ต้องการและสุดท้ายความยาวของข้อความ
การทำเช่นนี้ช่วยให้ข้อความที่ถูกแฮชมีความยาวโดยพลการรวมถึงข้อความที่มีความยาวเป็นศูนย์
(Add-on เพื่อ Dennis และคำตอบของ fixer1234?)
ชัดถ้อยชัดคำ:
$ shasum -a 256 /dev/null
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /dev/null
ไฟล์ 0 ไบต์ทั้งหมดจะมีการตรวจสอบเดียวกัน
$ shasum -a 512 /dev/null
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e /dev/null
$ shasum /dev/null
da39a3ee5e6b4b0d3255bfef95601890afd80709 /dev/null
$ md5 /dev/null
MD5 (/dev/null) = d41d8cd98f00b204e9800998ecf8427e
(หมายเหตุ: MD5 ใช้งานไม่ได้มันไม่ใช่ 'แฮชที่ปลอดภัย' นี่เป็นเอกสารในรายการ MD5 ใน Wikipedia)
ตัวอย่างเช่นหากคุณกำลังพยายามตรวจสอบความไร้เดียงสาของไฟล์ที่virustotal.comด้วยหนึ่งในค่าแฮชที่ปลอดภัยที่ระบุไว้ที่นี่เช่นda39a3ee5e6b4b0d3255bfef95601890afd80709
จากนั้นคุณสามารถมั่นใจได้ว่าไฟล์นั้นมีขนาด 0 ไบต์ (หรือเป็นโฟลเดอร์ซึ่ง virustotal, สับสน, แฮชราวกับว่ามันเป็นไฟล์ 0- ไบต์)