คู่มือ SHA-256 ฉบับสมบูรณ์ - ฟังก์ชันแฮชเข้ารหัสทำงานอย่างไร
เรียนรู้ทุกอย่างเกี่ยวกับ SHA-256: แฮชคืออะไร SHA-256 ทำงานอย่างไร กรณีใช้งานจริงตั้งแต่ Bitcoin ถึงการเก็บรหัสผ่าน และวิธีสร้างแฮช SHA-256 ออนไลน์
แฮช (Hash) คืออะไร?
แฮชเป็นฟังก์ชันทางคณิตศาสตร์แบบทางเดียวที่รับอินพุตขนาดใดก็ได้และสร้างเอาต์พุตขนาดคงที่ที่เรียกว่าค่าแฮช (หรือที่เรียกว่า digest หรือ checksum) ลองนึกภาพว่าเป็นลายนิ้วมือดิจิทัลของข้อมูล
ความแตกต่างสำคัญระหว่างแฮชและการเข้ารหัสคือแฮชเป็นกระบวนการที่ไม่สามารถย้อนกลับได้ ในขณะที่การเข้ารหัสสามารถถอดรหัสด้วยคีย์ที่ถูกต้อง ฟังก์ชันแฮชเป็นทางเดียว คุณไม่สามารถสร้างข้อมูลเดิมจากค่าแฮชได้
- ขนาดเอาต์พุตคงที่: ไม่ว่าอินพุตจะเป็น 1 ไบต์หรือ 1 เทราไบต์ แฮชจะมีความยาวเท่ากันเสมอ
- กำหนดแน่นอน: อินพุตเดียวกันจะสร้างแฮชเดียวกันเสมอ
- ทางเดียว: คุณไม่สามารถย้อนคืนข้อมูลเดิมจากค่าแฮชได้
- เป็นเอกลักษณ์: แม้เปลี่ยนแปลงเล็กน้อยในอินพุตก็สร้างแฮชที่แตกต่างอย่างสิ้นเชิง (เอฟเฟกต์หิมะถล่ม)
SHA-256 คืออะไร
SHA-256 (Secure Hash Algorithm 256 บิต) เป็นสมาชิกของตระกูล SHA-2 ออกแบบโดย NSA และเผยแพร่โดย NIST ในปี 2001 เป็นฟังก์ชันแฮชที่ใช้กันอย่างแพร่หลายที่สุดในโลก เป็นรากฐานของเทคโนโลยีบล็อกเชน ใบรับรองดิจิทัล และโปรโตคอลความปลอดภัยสมัยใหม่
SHA-256 สร้างเอาต์พุต 256 บิต (32 ไบต์) เสมอ แสดงเป็นสตริงเลขฐานสิบหก 64 ตัวอักษร
คุณสมบัติสำคัญของ SHA-256
- กำหนดแน่นอน: อินพุตเดียวกันจะสร้างแฮชเดียวกันเสมอ
- เอฟเฟกต์หิมะถล่ม: การเปลี่ยนแม้เพียง 1 บิตจะสร้างแฮชที่แตกต่างอย่างสิ้นเชิง
- ทนทานต่อการชน: เป็นไปไม่ได้ในทางการคำนวณที่จะหาสองอินพุตที่ให้แฮชเดียวกัน
- ทนทานต่อพรีอิมเมจ: เมื่อกำหนดค่าแฮช เป็นไปไม่ได้ที่จะหาอินพุตเดิม
อินพุต: "hello"
SHA-256: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
อินพุต: "Hello" (เปลี่ยนเฉพาะตัวอักษรแรก)
SHA-256: 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969
SHA-256 ทำงานอย่างไร
- การเติมข้อความ (Padding): อินพุตถูกเติมจนมีความยาวเป็นทวีคูณของ 512 บิต
- แบ่งเป็นบล็อก: ข้อความถูกแบ่งเป็นบล็อกขนาด 512 บิต
- เริ่มต้น: ตัวแปร 32 บิตแปดตัวเริ่มต้นด้วยค่าคงที่จากส่วนเศษของรากที่สองของจำนวนเฉพาะ 8 ตัวแรก
- 64 รอบการบีบอัด: แต่ละบล็อกผ่าน 64 รอบของการดำเนินการบิต การบวกแบบโมดูลาร์ และการหมุน
- แฮชสุดท้าย: ตัวแปรแปดตัวถูกรวมเป็นค่าแฮช 256 บิต (64 ตัวอักษรเลขฐานสิบหก)
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
กรณีใช้งานจริงของ SHA-256
บล็อกเชนและ Bitcoin
SHA-256 เป็นรากฐานของ Bitcoin ใช้ในอัลกอริทึมการขุด Proof of Work ที่นักขุดต้องหาค่า nonce ที่สร้างแฮชที่มีศูนย์นำหน้าจำนวนหนึ่ง
การเก็บรหัสผ่าน
แอปพลิเคชันเก็บแฮช SHA-256 ของรหัสผ่านแทนข้อความธรรมดา
การตรวจสอบความสมบูรณ์ของไฟล์และลายเซ็นดิจิทัล
เมื่อดาวน์โหลดซอฟต์แวร์ เว็บไซต์มักให้ checksum SHA-256 ใบรับรอง SSL/TLS สมัยใหม่ใช้ SHA-256 สร้างลายนิ้วมือใบรับรอง
SHA-256 เปรียบเทียบกับอัลกอริทึมแฮชอื่น
| Algorithm | Output Size | Security | Speed | Status |
|---|---|---|---|---|
| MD5 | 128-bit (32 hex) | Broken | Very Fast | Deprecated |
| SHA-1 | 160-bit (40 hex) | Broken | Fast | Deprecated |
| SHA-256 | 256-bit (64 hex) | Secure | Moderate | Recommended |
| SHA-512 | 512-bit (128 hex) | Secure | Moderate | Recommended |
- MD5: ออกแบบปี 1991 แฮช 128 บิต พิสูจน์การโจมตีชนในปี 2004
- SHA-1: แฮช 160 บิต Google แสดงการโจมตีชนจริง (SHAttered) ในปี 2017
- SHA-256: ไม่มีช่องโหว่ที่ทราบ 2^256 เอาต์พุตที่เป็นไปได้
- SHA-512: บิตมากกว่า (512) เร็วกว่าเล็กน้อยในระบบ 64 บิต
การใช้เครื่องสร้างแฮช SHA-256 ของเรา
โหมดข้อความ
- ป้อนข้อความ: พิมพ์หรือวางข้อความใดก็ได้ในช่องป้อนข้อมูล
- ผลลัพธ์ทันที: แฮช SHA-256 คำนวณแบบเรียลไทม์ขณะคุณพิมพ์
- คัดลอกแฮช: คลิกปุ่มคัดลอกเพื่อคัดลอกแฮชไปยังคลิปบอร์ด
โหมดไฟล์
- เลือกไฟล์: คลิกพื้นที่อัปโหลดหรือลากและวางไฟล์
- การคำนวณแฮช: ไฟล์อ่านทั้งหมดในเบราว์เซอร์ ไม่มีข้อมูลถูกอัปโหลด
- ตรวจสอบความสมบูรณ์: เปรียบเทียบแฮชที่สร้างกับ checksum จากแหล่งไฟล์
ลองใช้เครื่องสร้างแฮช SHA-256 ของเรา
สร้างแฮช SHA-256 จากข้อความหรือไฟล์ทันทีในเบราว์เซอร์ของคุณ ไม่มีข้อมูลถูกส่งไปยังเซิร์ฟเวอร์