แฮช SHA-1

อินพุตอักขระ ไบต์
示例:
All Hashes (side-by-side)
Computed via Web Crypto API
MD5
32 hex
SHA-1
40 hex
SHA-256
64 hex
SHA-384
96 hex
SHA-512
128 hex

คำนวณค่าแฮช SHA1 ออนไลน์ ป้อนข้อความรับผลลัพธ์ฐานสิบหก 40 ตัวอักษรทันที รองรับทั้งข้อความและไฟล์ ประมวลผลในเบราว์เซอร์ไม่รั่วไหลข้อมูล

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

SHA-1 คืออะไร

SHA1 (Secure Hash Algorithm 1) เป็นฟังก์ชันแฮชเข้ารหัสที่ออกแบบโดยสำนักงานความมั่นคงแห่งชาติสหรัฐฯ (NSA) และเผยแพร่โดย NIST ในปี 1995 รับอินพุตความยาวตามอำเภอใจ สร้างเอาต์พุต 160 บิต (ฐานสิบหก 40 ตัวอักษร)

**การใช้งานทั่วไป:** ①ลายนิ้วมือคอมมิต Git/SVN (commit SHA); ②ตรวจสอบความสมบูรณ์ของไฟล์ (ความเข้ากันได้ในอดีต); ③แฮชสำหรับแจกจ่ายซอฟต์แวร์ (ถูกทดแทนด้วย SHA-256 ขึ้นไป); ④การจับมือ TLS 1.0/1.1 (เลิกใช้แล้ว)

**สถานะความปลอดภัย:** ในปี 2017 Google และ CWI Amsterdam ได้เปิดเผยการโจมตีด้วยการชนกัน SHA-1 ครั้งแรกในทางปฏิบัติ (SHAttered) ซึ่งหมายความว่า SHA-1 ไม่ได้ต้านทานการชนกันอีกต่อไป สถานการณ์สำคัญโปรดใช้ SHA-256 ขึ้นไป; สถานการณ์ที่ไม่เกี่ยวกับความปลอดภัย (ประวัติ Git ลายนิ้วมือไฟล์) ยังสามารถใช้ต่อได้

**เปรียบเทียบกับ MD5:** SHA1 มีความปลอดภัยมากกว่า MD5 (เอาต์พุตยาวกว่า) แต่ทั้งสองอัลกอริทึมไม่ต้านทานการชนกัน; MD5 ยังใช้ได้สำหรับลายนิ้วมือไฟล์/ขจัดข้อมูลซ้ำ ส่วน SHA1 ยังคงอยู่ในประวัติ Git ทั้งสองไม่ควรถูกใช้ต่อในสถานการณ์ความปลอดภัยใหม่

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

  • ค้นหา Git commit hash
  • ลายนิ้วมือเวอร์ชันโค้ด SVN
  • ตรวจสอบ SHA1 สำหรับระบบเดิม (หลีกเลี่ยงการอัปเกรดย้ายระบบ)
  • สาธิตแฮชเข้ารหัสในการเรียนการสอน/วิชาการ
  • ตรวจสอบแฮชสำหรับซอฟต์แวร์เก่า (เผยแพร่ MD5/SHA1 แล้ว)
  • ทดสอบความสอดคล้อง SHA1 ระหว่างไคลเอนต์/เซิร์ฟเวอร์

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

  1. ป้อนหรือวางเนื้อหาที่ต้องการคำนวณในกล่องข้อความ
  2. ระบบจะคำนวณ SHA1 โดยอัตโนมัติและแสดงผลลัพธ์ฐานสิบหก 40 ตัวอักษร
  3. ตัวเลือกเพิ่มเติม: ลากและวางไฟล์เพื่อคำนวณ SHA1 ไฟล์
  4. คลิกปุ่มคัดลอกเพื่อรับค่าแฮช

คุณสมบัติ

  • SHA1 ข้อความ: คำนวณแบบเรียลไทม์ (มิลลิวินาที)
  • SHA1 ไฟล์: คำนวณแบบแบ่งส่วนรองรับไฟล์ขนาดใหญ่
  • ประมวลผลในเบราว์เซอร์: เนื้อหาไม่อัปโหลดไปยังเซิร์ฟเวอร์
  • คัดลอกคลิกเดียว: คัดลอกค่าแฮชไปยังคลิปบอร์ด
  • รองรับอักษรไทย อีโมจิ และอักขระหลายภาษา
  • เปรียบเทียบค่าแฮช SHA1 สองค่าได้ (ไม่คำนึงตัวพิมพ์เล็ก-ใหญ่)

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

SHA1 ปลอดภัยหรือไม่ ยังสามารถใช้ได้หรือไม่

สถานการณ์ที่อ่อนไหวต่อความปลอดภัยโปรดใช้ SHA-256/SHA-512 ขึ้นไป SHA-1 ถูก Google เปิดเผยการโจมตีด้วยการชนกันในปี 2017 (SHAttered) แต่: ①ความเข้ากันได้กับประวัติ Git; ②ตรวจสอบซอฟต์แวร์เก่า; ③ลายนิ้วมือไฟล์ที่ไม่สำคัญ — สถานการณ์เหล่านี้ยังสามารถใช้ต่อได้

SHA1 มีความยาวเอาต์พุตเท่าใด

SHA1 สร้างเอาต์พุต 160 บิต แสดงด้วยฐานสิบหกเป็น 40 ตัวอักษร (ทุก 4 บิตสอดคล้องกับ 1 ตัวอักษร hex) ตัวอย่าง: a1b2c3d4e5f6... รวม 40 ตัวอักษร

SHA1 กับ MD5 ไหนดีกว่ากัน

ทั้งสองไม่เหมาะสำหรับสถานการณ์ความปลอดภัยใหม่ SHA1 มีความปลอดภัยดีกว่า MD5 เล็กน้อย (เอาต์พุตยาวกว่า) แต่ในทางปฏิบัติ: ①ลายนิ้วมือไฟล์/ขจัดข้อมูลซ้ำใช้ MD5 (เร็วกว่า); ②ความเข้ากันได้กับ Git ใช้ SHA1; ③สถานการณ์ความปลอดภัยใช้ SHA256 ขึ้นไป

SHA1 คำนึงตัวพิมพ์เล็ก-ใหญ่หรือไม่

คำนึง ข้อความต้นฉบับกับข้อความตัวพิมพ์ใหญ่ทั้งหมดจะให้ SHA1 ต่างกันอย่างสิ้นเชิง แต่สตริงค่าแฮชเองสามารถแสดงผลเป็นตัวพิมพ์เล็กหรือใหญ่ได้ (Linux นิยมตัวพิมพ์เล็ก Windows นิยมตัวพิมพ์ใหญ่) เมื่อเปรียบเทียบให้เปรียบเทียบเฉพาะตัวอักษรโดยไม่คำนึงตัวพิมพ์

สามารถคำนวณ SHA1 ของไฟล์ได้หรือไม่

ได้ คลิกปุ่ม「อัปโหลดไฟล์」หรือลากและวางไฟล์ลงบนหน้า ระบบจะคำนวณ SHA1 ไฟล์แบบแบ่งส่วน เหมาะสำหรับไฟล์ขนาดใหญ่ไม่ค้าง

SHA1 เป็นอัลกอริทึมเข้ารหัสหรือไม่

ไม่ใช่ SHA1 เป็นฟังก์ชันแฮชทางเดียว ตามทฤษฎีไม่สามารถย้อนกลับจากค่าแฮชเพื่อหาข้อความต้นฉบับได้ 「SHA1 เข้ารหัส」เป็นคำพูดทั่วไปที่ไม่เป็นทางการ นี่ไม่ใช่สำหรับเข้ารหัส เป็นเพียงการคำนวณแฮชเท่านั้น

เหตุใด Git จึงยังคงใช้ SHA1

แม้ว่า SHA1 เองจะไม่ต้านทานการชนกัน แต่โครงสร้าง SHA1 ต้านทานการชนกันที่ Git ใช้ถูกออกแบบโดย Linus Torvalds เป็นพิเศษ — แม้จะสามารถสร้างการชนกันดั้งเดิมได้ แต่ก็ไม่สามารถสร้างการชนกัน Git commit ที่มีคำนำหน้าเดียวกันได้ ดังนั้น Git ปัจจุบันยังคงปลอดภัย

เนื้อหาที่อัปโหลดจะถูกส่งไปยังเซิร์ฟเวอร์หรือไม่

นี่ใช้ Web Crypto API คำนวณภายในเบราว์เซอร์ เนื้อหาไม่อัปโหลดไปยังเซิร์ฟเวอร์ ประมวลผลในเครื่องเพื่อปกป้องความเป็นส่วนตัว เหมาะสำหรับสถานการณ์ที่อ่อนไหว

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

เอาต์พุต SHA1 ไม่สอดคล้องกับที่แสดงในที่อื่น

โปรดตรวจสอบ: 1) ป้อนข้อความเหมือนกันทุกประการ (รวมช่องว่าง การขึ้นบรรทัด อักขระที่มองไม่เห็น); 2) ข้อความต้นฉบับถูกตัดช่องว่างอัตโนมัติหรือไม่ (แนะนำให้ทำเครื่องหมาย「รวมการขึ้นบรรทัด」); 3) วิธีการเข้ารหัสสอดคล้องกันหรือไม่ (UTF-8/GBK ฯลฯ)

เอาต์พุต SHA1 ไม่ใช่ 40 ตัวอักษร

SHA1 สร้างเอาต์พุตเสมอ 160 บิต = 40 ตัวอักษรฐานสิบหก หากเอาต์พุตยาว/สั้นกว่านั้น อาจแสดงผลด้วยการเข้ารหัส Base64 โปรดยืนยันว่าใช้การแสดงผลฐานสิบหก ไม่ใช่การเข้ารหัสอื่น

อภิธานศัพท์

SHA1
ฟังก์ชันแฮชเข้ารหัส 160 บิต มาตรฐานโดย NIST ใน FIPS 180-1 ไม่ต้านทานการชนกันแล้ว แต่ยังเป็นตัวเลือกทั่วไปสำหรับประวัติ Git และการตรวจสอบไฟล์
แฮช (Hash)
ฟังก์ชันทางคณิตศาสตร์ที่จับคู่อินพุตความยาวตามอำเภอใจกับเอาต์พุตความยาวคงที่ SHA1 สร้างผลลัพธ์ฐานสิบหก 40 ตัวอักษร
การชนกัน (Collision)
อินพุตที่แตกต่างกันสองอย่างสร้างค่าแฮชเดียวกัน ในปี 2017 Google เปิดเผยการโจมตี SHAttered พิสูจน์ว่า SHA1 สามารถสร้างการชนกันได้
FIPS
Federal Information Processing Standards มาตรฐานประมวลผลข้อมูลที่เผยแพร่โดย NIST สหรัฐฯ FIPS 180-1 เป็นมาตรฐาน SHA1
การเข้ารหัสฐานสิบหก (Hex)
ค่าแฮชมักแสดงด้วยเลขฐานสิบหก ทุก 4 บิตไบนารีสอดคล้องกับ 1 ตัวอักษรฐานสิบหก SHA1 สร้างไบนารี 160 บิต → 40 ตัวอักษรฐานสิบหก
Git commit hash
Git ใช้ SHA1 ระบุแต่ละคอมมิต แม้อัลกอริทึมเองจะถูกบุกรุก แต่ Git ยังคงใช้ SHA1 เนื่องจาก Linus Torvalds ออกแบบโครงสร้างต้านทานการชนกันสำหรับ SHA1 โดยเฉพาะ

เปรียบเทียบ SHA1 กับอัลกอริทึมแฮชอื่น

เปรียบเทียบความแตกต่างระหว่าง SHA1 กับ MD5/ตระกูล SHA-2

อัลกอริทึมเอาต์พุตเผยแพร่ความปลอดภัย
MD5128 บิต / 32 ตัวอักษร1992อ่อนแอ (ถูกบุกรุก 2004)
SHA-1160 บิต / 40 ตัวอักษร1995อ่อนแอ (ถูกบุกรุก 2017)
SHA-256256 บิต / 64 ตัวอักษร2001แข็งแรง (แนะนำ)
SHA-512512 บิต / 128 ตัวอักษร2001แข็งแรงมาก

ผลกระทบของความยาวอินพุตต่อความเร็ว SHA1

ความเร็วในการประมวลผล SHA1 แปรผันตรงกับปริมาณข้อมูลอินพุต

ขนาดอินพุตเวลาประมวลผลในเครื่องสถานการณ์ทั่วไป
10 ตัวอักษร< 1 msสตริงสั้น
1 KB< 1 msเอกสารข้อความสั้น
100 KB1-2 msเอกสารขนาดกลาง
10 MB30-60 msไฟล์ PDF
100 MB300-600 msไฟล์วิดีโอ
1 GB3-6 sไฟล์ขนาดใหญ่

5 สถานการณ์การใช้ SHA1 ทั่วไป

ครอบคลุมการพัฒนา การควบคุมเวอร์ชัน การปฏิบัติตามกฎระเบียบ ความปลอดภัย

สถานการณ์การใช้งานระดับความเสี่ยงคุณค่าหลัก
Git commit hashต่ำ (มีการป้องกันการชนกันของ Git)ความเข้ากันได้ทางประวัติ
ตรวจสอบ SHA1 ซอฟต์แวร์เก่าปานกลางเข้ากันได้กับระบบเดิม
สาธิตการเรียนการสอนไม่มีทำความเข้าใจหลักการแฮช
แฮชรหัสผ่านสูง (ไม่ควรใช้)ควรเปลี่ยนเป็น bcrypt/Argon2
ลายเซ็น APIสูง (ไม่ควรใช้)ควรเปลี่ยนเป็น SHA256/HMAC-SHA256

Authoritative References