เครื่องสร้าง Hash (SHA-1, SHA-256
พิมพ์ข้อความใด ๆ เพื่อดู hash SHA ทั้งสี่พร้อมกัน มีประโยชน์สำหรับการยืนยันความสมบูรณ์ของไฟล์ การสร้าง signature การ debug การลงชื่อ API request และการเรียนรู้วิทยาการเข้ารหัส
วิธีการทำงาน
Hashing คืออะไรและไม่ใช่อะไร
ฟังก์ชัน hash แบบ cryptographic รับ input ขนาดใดก็ได้และสร้าง output ขนาดคงที่ (the 'digest') Input เดิมให้ digest เดิมเสมอ การเปลี่ยน input เล็กน้อยสร้าง digest ที่ต่างกันอย่างมาก (avalanche effect) การย้อนกลับ digest เพื่อหา input เป็นไปไม่ได้ทางคำนวณสำหรับฟังก์ชันที่แข็งแกร่งอย่าง SHA-256
Hashing ไม่ใช่การเข้ารหัส ไม่มีคีย์ ไม่มีการถอดรหัส ความสับสนที่พบบ่อย: การ hash รหัสผ่าน (ใช้ bcrypt/argon2 แทน — พวกมันชะลอ brute force), การ hash ข้อความแบบสุ่มแล้ว 'ถอดรหัส' (เป็นไปไม่ได้โดยออกแบบ)
จะเลือกอัลกอริทึมใด
SHA-256 เป็นค่าเริ่มต้นสมัยใหม่ ใช้ใน Bitcoin, TLS certificate, JWT signature (HS256), hash ความสมบูรณ์ของไฟล์ 256 bit เพียงพอสำหรับความต้องการด้านความปลอดภัยที่สมจริงทุกอย่าง
SHA-384 และ SHA-512 เป็น variant ที่ใหญ่กว่าของตระกูลเดียวกัน SHA-512 บางครั้งเร็วกว่าบนฮาร์ดแวร์ 64 bit ใช้เมื่อ protocol หรือมาตรฐานระบุอย่างชัดเจน
SHA-1 เลิกใช้เพื่อความปลอดภัยแต่ยังปรากฏในระบบเก่า (TLS รุ่นเก่า, hash commit ของ git) อย่าใช้สำหรับงานที่ต้องการความปลอดภัยใหม่ — มีการแสดง collision ตั้งแต่ปี 2017 เรารวมไว้เพื่อความเข้ากันได้ย้อนหลัง
การใช้งานทั่วไป
ความสมบูรณ์ของไฟล์: ดาวน์โหลดไฟล์และ hash คำนวณ hash ใหม่ในเครื่อง เปรียบเทียบ ถ้าตรงกัน ไฟล์ไม่ถูกเปลี่ยนระหว่างส่ง
Git commit: identifier ของแต่ละ commit คือ hash SHA-1 ของเนื้อหา การ hash ข้อความ commit ไม่เปิดเผยอะไรเอง คุณต้องการ commit ทั้งหมดเพื่อสร้างใหม่
การลงชื่อ API request: HMAC-SHA-256 เป็นมาตรฐานสำหรับ AWS, GitHub และ API หลายตัว hash เองเป็นเพียงส่วนหนึ่งของ HMAC API จะให้ construction ที่แน่นอนที่ต้องการ
Cache key: การ hash URL หรือชุด params ให้ cache key ที่คงที่และความยาวคงที่
คำถามที่พบบ่อย
›ทำไมไม่มี MD5?
Collision ของ MD5 ถูกแสดงให้เห็นตั้งแต่ปี 2004 Web Crypto API ไม่เปิดเผยมัน สำหรับการใช้งานที่ไม่ใช่ความปลอดภัย (cache key, deduplication) ใช้ SHA-256 ซึ่งช้ากว่าเล็กน้อยและไม่มีความเสี่ยง collision
›ฉัน hash ไฟล์ binary ได้ไหม?
ไม่ได้โดยตรงผ่านเครื่องมือนี้ — วางข้อความเท่านั้น สำหรับไฟล์ ใช้ shell ของระบบปฏิบัติการ: `shasum -a 256 myfile.txt` บน macOS/Linux, `Get-FileHash` บน Windows
›ทำไม SHA-512 ถึงยาวกว่า SHA-256?
ตัวเลขในชื่ออ้างถึงความยาว output เป็น bit: SHA-256 สร้าง 256 bit = 64 ตัวอักษรเลขฐานสิบหก SHA-512 สร้าง 512 bit = 128 ตัวอักษร ยาวเป็นสองเท่า
›Input สองอันต่างกันให้ hash เดียวกันได้ไหม?
ในทางทฤษฎีได้ (หลักรังนกพิราบ) ในทางปฏิบัติไม่ได้สำหรับ SHA-256 ด้วยเทคโนโลยีปัจจุบัน Collision ของ SHA-1 ถูกแสดงให้เห็นแล้ว SHA-256 ยังไม่มี
›ควรใช้สิ่งนี้ hash รหัสผ่านหรือไม่?
ไม่ รหัสผ่านต้องการ hashing แบบช้า (bcrypt, scrypt, argon2) บวก salt SHA-256 ธรรมดาเร็วเกินไป — ผู้โจมตีสามารถ hash ได้หลายพันล้านครั้งต่อวินาที
›ทำไมข้อความเดิมถึงให้ hash เดิมเสมอ?
ตามนิยาม ฟังก์ชัน hash เป็น deterministic ถ้าคุณต้องการ output ต่างกันแต่ละครั้ง (เช่น 'salt') ให้เติมค่าสุ่มหน้าหรือหลัง input
›ข้อมูลส่งไปที่ไหนหรือไม่?
ไม่ Web Crypto ทำงานทั้งหมดในเบราว์เซอร์ของคุณ ไม่มีการส่งข้อมูล
›HMAC คืออะไรและนี่ใช่มันไหม?
HMAC เพิ่ม secret key ให้กับฟังก์ชัน hash เครื่องมือนี้คำนวณ hash ธรรมดา สำหรับ HMAC ใช้เครื่องมือเฉพาะหรือ programming library
เครื่องมือที่เกี่ยวข้อง
อัปเดตล่าสุด: