เครื่องมือสร้างค่าแฮช (Hash Generator)
พิมพ์ข้อความหรือเลือกไฟล์ แล้วรับค่าไดเจสต์ MD5, SHA-1, SHA-256, SHA-384 และ SHA-512 แสดงเรียงกัน พร้อมปุ่มคัดลอกแยกสำหรับแต่ละค่า การคำนวณแฮชทำงานบนอุปกรณ์ของคุณด้วย Web Crypto API ของเบราว์เซอร์และโค้ด MD5 ภายในเครื่อง ไฟล์จึงไม่ถูกอัปโหลดเลย
0 ตัวอักษร · 0 คำ · 0 บรรทัด
- MD5ไม่เหมาะกับงานด้านความปลอดภัย
- —
- SHA-1ไม่เหมาะกับงานด้านความปลอดภัย
- —
- SHA-256
- —
- SHA-384
- —
- SHA-512
- —
0 ตัวอักษร · 0 คำ · 0 บรรทัด
ทำงานทั้งหมดภายในแท็บเบราว์เซอร์นี้ ข้อความของคุณจะไม่ถูกอัปโหลดหรือจัดเก็บไว้
ขนาดของ digest
ความยาวและ digest ของข้อมูลว่างคำนวณด้วย MD5 ของหน้านี้เองและ Web Crypto API ในขณะที่สร้างหน้านี้
| อัลกอริทึม | จำนวนบิตของ digest | ความยาวแบบ hex | จำนวนบิตของบล็อก | สถานะ | ค่าแฮชของข้อมูลว่าง |
|---|---|---|---|---|---|
| MD5 | 128 | 32 | 512 | ไม่ปลอดภัยแล้ว: พบการชนกันในปี 2004 | d41d8cd98f00b204e9800998ecf8427e |
| SHA-1 | 160 | 40 | 512 | ไม่ปลอดภัยแล้ว: มีการสาธิตการชนกันในปี 2017 | da39a3ee5e6b4b0d3255bfef95601890afd80709 |
| SHA-256 | 256 | 64 | 512 | ปลอดภัย (SHA-2) | e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 |
| SHA-384 | 384 | 96 | 1024 | ปลอดภัย (SHA-2) | 38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b |
| SHA-512 | 512 | 128 | 1024 | ปลอดภัย (SHA-2) | cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e |
อัลกอริทึมห้าแบบ ซึ่งสองแบบเลิกใช้แล้ว
ฟังก์ชันแฮชแปลงข้อมูลนำเข้าขนาดใดก็ได้ให้เป็นลายนิ้วมือขนาดคงที่ หากเปลี่ยนเพียงตัวอักษรเดียว บิตผลลัพธ์จะเปลี่ยนไปราวครึ่งหนึ่ง ดังนั้นแม้แต่ "UltKit" กับ "ultkit" ก็ให้ค่าไดเจสต์ที่ไม่เกี่ยวข้องกันเลย MD5 ซึ่ง Ron Rivest เผยแพร่ใน RFC 1321 เมื่อปี 1992 ให้ผลลัพธ์ 128 บิต (อักขระเลขฐานสิบหก 32 ตัว) ในปี 2004 Xiaoyun Wang และคณะแสดงวิธีสร้างข้อมูลนำเข้าสองชุดที่ต่างกันแต่ได้แฮช MD5 เดียวกัน และในปี 2012 มัลแวร์ Flame ใช้การชนกันของ MD5 ปลอมใบรับรองลงนามโค้ดของ Microsoft SHA-1 (160 บิต) ก็ถูกทำลายในแบบเดียวกัน เมื่อ Google และ CWI Amsterdam เผยแพร่การชนกันจริงครั้งแรกที่ชื่อ SHAttered ในปี 2017 ทั้งสองอัลกอริทึมจึงมีป้ายกำกับว่า "ไม่ควรใช้เพื่อความปลอดภัย" ในหน้านี้
SHA-256, SHA-384 และ SHA-512 อยู่ในตระกูล SHA-2 ซึ่ง NIST กำหนดไว้ใน FIPS 180-4 และยังไม่มีการโจมตีที่ใช้ได้จริง SHA-256 เป็นค่าเริ่มต้นสำหรับการดาวน์โหลดซอฟต์แวร์ ฟอร์แมตอ็อบเจกต์ใหม่ของ Git ใบรับรอง TLS และ Bitcoin ส่วน MD5 และ SHA-1 ยังใช้ได้กับงานที่ไม่มีผู้โจมตี เช่น ตรวจจับไฟล์เสียหายโดยไม่ตั้งใจ หรือหาไฟล์ซ้ำ จึงยังมีหน้าดาวน์โหลดจำนวนมากแสดงค่าเหล่านี้อยู่
ทำไมการแฮชจึงไม่ใช่การเข้ารหัส
การเข้ารหัสถูกออกแบบให้ย้อนกลับได้ ผู้ถือกุญแจจะได้ข้อมูลต้นฉบับคืน แต่แฮชไม่มีกุญแจและย้อนกลับไม่ได้ เพราะมีข้อมูลนำเข้านับไม่ถ้วนที่ให้ไดเจสต์เดียวกัน ทว่าแฮชก็ไม่ใช่ที่เก็บความลับที่ปลอดภัย ผู้โจมตีที่เห็น SHA-256 ของข้อมูลสั้นหรือที่พบบ่อยก็แค่แฮชตัวเลือกไปเรื่อย ๆ จนตรงกัน และมีตารางคำนวณล่วงหน้าครอบคลุมรหัสผ่านที่รู้จักหลายพันล้านรายการ แฮชแบบเร็วถูกสร้างมาให้เร็ว และ GPU ยุคใหม่ลอง SHA-256 ได้หลายพันล้านครั้งต่อวินาที
ดังนั้นควรเก็บรหัสผ่านด้วยแฮชรหัสผ่านที่ช้าโดยตั้งใจและมี salt เช่น Argon2, bcrypt หรือ scrypt ไม่ใช่ MD5 หรือ SHA-256 ล้วน ๆ และสร้างรหัสผ่านด้วยเครื่องมือสร้างรหัสผ่าน ใช้หน้านี้กับสิ่งที่แฮชแบบเร็วทำได้ดี คือตรวจว่าไฟล์ที่ดาวน์โหลดตรงกับค่าเช็กซัมที่ผู้เผยแพร่ระบุ เปรียบเทียบสองไฟล์โดยไม่ต้องเปิด หรือตรวจไดเจสต์ที่โค้ดของคุณคำนวณ ข้อความจะถูกแฮชเป็น UTF-8 โดยไม่มีอักขระขึ้นบรรทัดใหม่ท้ายสุด ซึ่งเป็นสาเหตุที่ผลลัพธ์มักต่างจาก echo "text" | sha256sum ในเทอร์มินัล ศูนย์รวมเครื่องมือสำหรับนักพัฒนา เปรียบเทียบการแฮชกับการเข้ารหัสแบบย้อนกลับได้บนตัวอย่างเดียวกัน
คำถามที่พบบ่อย
- ตรวจสอบไฟล์ที่ดาวน์โหลดด้วยค่า checksum SHA-256 ได้อย่างไร
- เลือกไฟล์ด้วย Hash a file จากนั้นเทียบบรรทัด SHA-256 กับค่าบนเว็บไซต์ของผู้เผยแพร่ ทุกตัวอักษรต้องตรงกัน เลขฐานสิบหกตัวพิมพ์ใหญ่เปลี่ยนเพียงการแสดงตัวอักษร a ถึง f เท่านั้น
- ถอดรหัสค่าแฮช MD5 หรือ SHA-256 กลับได้หรือไม่
- ไม่ได้ เพราะไม่มีอะไรให้ถอดรหัส เว็บไซต์ที่อ้างว่าย้อนแฮชได้เพียงค้นไดเจสต์จากตารางสตริงที่เคยแฮชไว้ ซึ่งใช้ได้เฉพาะข้อมูลสั้นหรือที่พบบ่อย
- ทำไมยังมี MD5 ให้ใช้ ทั้งที่ไม่ปลอดภัยแล้ว
- หลายระบบยังเผยแพร่เช็กซัม MD5 และใช้ตรวจจับการเปลี่ยนแปลงโดยไม่ตั้งใจได้ดี MD5 เสียหายก็เฉพาะกรณีที่ผู้โจมตีจงใจสร้างไฟล์ที่ชนกัน
- ค่าแฮช MD5 ของสตริงว่างคืออะไร
- d41d8cd98f00b204e9800998ecf8427e หากเห็นค่านี้ มักแปลว่าโปรแกรมแฮชข้อมูลว่างเปล่า เช่น ไฟล์โหลดไม่สำเร็จก่อนที่จะแฮช
- SHA-512 ปลอดภัยกว่า SHA-256 หรือไม่
- ทั้งสองยังไม่ถูกทำลายและเกินกว่าจะเดาสุ่มได้ SHA-512 ให้ผลลัพธ์ยาวกว่าและอาจเร็วกว่าบนโปรเซสเซอร์ 64 บิต แต่ SHA-256 เป็นตัวเลือกที่คาดหวังกันแพร่หลายกว่าสำหรับเช็กซัมและลายเซ็น