SHA-256 คืออะไร วิธีใช้สร้างแฮชเช็คความถูกต้อง

SHA-256 คืออะไร วิธีใช้สร้างแฮชเช็คความถูกต้อง

SHA-256 คือฟังก์ชันแฮช (hash function) ที่แปลงข้อมูลใดๆ เป็นค่าฐาน 16 ความยาว 64 ตัวอักษร ใช้ตรวจสอบความถูกต้องของข้อมูลและไฟล์

คุณสมบัติของ SHA-256

  • ทางเดียว: แปลงข้อมูลเป็นแฮชได้ แต่ไม่สามารถย้อนกลับเป็นข้อมูลเดิม
  • ไวต่อการเปลี่ยนแปลง: เปลี่ยนตัวอักษรแค่ 1 ตัว → แฮชเปลี่ยนทั้งก้อน
  • ผลลัพธ์คงที่: ข้อมูลเดียวกัน → แฮชเดียวกันเสมอ

ตัวอย่าง

ข้อความ hello:

SHA-256 = 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

ข้อความ Hello (ตัว H ใหญ่): แฮชต่างกันโดยสิ้นเชิง

ใช้กับอะไรบ้าง

  • ตรวจสอบไฟล์ที่ดาวน์โหลด (เทียบ checksum จากเว็บต้นทาง)
  • ลายเซ็นดิจิทัลและใบรับรอง
  • Blockchain และระบบเงินดิจิทัล
  • เก็บรหัสผ่านแบบแฮช (ไม่เก็บรหัสตรงๆ)

ลองใช้ เครื่องสร้าง SHA-256 เพื่อสร้างแฮชทันที

SHA-256 ต่างจากการเข้ารหัส (Encryption) อย่างไร

หลายคนเข้าใจผิดว่าแฮชคือการเข้ารหัส ทั้งที่จริงแล้วต่างกันคนละเรื่อง การเข้ารหัสเป็นการ “เก็บข้อมูลให้ปลอดภัยแต่ยังถอยกลับได้” ด้วยกุญแจ ส่วน SHA-256 เป็นการ “ย่อยข้อมูลเป็นลายนิ้วมือ” แบบทางเดียว ไม่มีกุญแจ ไม่มีทางถอดกลับ

เปรียบง่ายๆ คือถ้าเข้ารหัสเหมือน “ล็อกของในตู้เซฟ” SHA-256 ก็เหมือน “ลายพิมพ์นิ้วมือ” — เราเทียบลายนิ้วมือเพื่อรู้ว่าใช่คนเดิมหรือเปล่า แต่สร้างตัวคนขึ้นมาจากลายนิ้วมือไม่ได้ ดังนั้นถ้าโจทย์ของคุณคือ “ต้องเอาข้อมูลกลับคืนมาได้” ให้ใช้การเข้ารหัส แต่ถ้าโจทย์คือ “ตรวจว่าข้อมูลถูกแก้ไขหรือเปล่า” ให้ใช้ SHA-256

จากประสบการณ์ทีมงาน: สิ่งที่ผู้ใช้จริงถามเราบ่อย

ทีมงานเราทำเว็บและระบบให้ร้านอาหารและ SME ไทยมาหลายปี ประเด็นเรื่องแฮชเจอบ่อยสองกรณีคือ (1) เจ้าของร้านที่ต้องตรวจสอบไฟล์โปรแกรม POS หรือไฟล์อัปเดตที่ดาวน์โหลดมาว่าเป็นของแท้จากผู้ให้บริการจริง และ (2) เพื่อนนักพัฒนาที่ต้องเช็คว่าไฟล์ที่ส่งให้ลูกค้าเหมือนต้นฉบับหรือถูกอินเทอร์เน็ตแปลกปลอมเข้ามา

สิ่งที่เราได้บทเรียนคือ “checksum ไม่มีประโยชน์ถ้าไม่มีต้นทางที่น่าเชื่อถือ” — การแฮชช่วยยืนยันว่าไฟล์ไม่ถูกเปลี่ยนระหว่างทาง แต่ถ้าคนร้ายเปลี่ยนทั้งไฟล์และค่า checksum ที่เผยแพร่ด้วยกัน ผู้ใช้ก็จับได้ยาก ดังนั้นควรดึงค่าแฮชจากช่องทางทางการของผู้ให้บริการเสมอ เช่น เว็บไซต์หลักหรือช่องทางที่ยืนยันตัวตนได้ ไม่ใช่จากลิงก์แชร์ที่ไม่รู้จัก

ตารางตัวอย่าง: เวลาที่ใช้และผลลัพธ์เปรียบเทียบ

ตารางด้านล่างเป็นตัวอย่างเชิงอธิบาย เพื่อให้เห็นภาพว่าการใช้ SHA-256 ไม่ได้ซับซ้อนอย่างที่คิด เครื่องมือออนไลน์สามารถแฮชข้อความได้ในไม่กี่วินาที

กรณีใช้งานข้อมูลตัวอย่างสิ่งที่ต้องทำเวลาโดยประมาณ
เช็คข้อความสั้นข้อความ helloวางในเครื่องมือ ได้แฮช 64 ตัวไม่เกิน 5 วินาที
เทียบไฟล์ดาวน์โหลดไฟล์ติดตั้งโปรแกรมรันคำสั่งแฮช แล้วเทียบกับเว็บต้นทาง10-60 วินาที (แล้วแต่ขนาดไฟล์)
เช็คสำรองข้อมูลร้านไฟล์สำรองฐานข้อมูลเมนูอาหารแฮชก่อนสำรอง และหลังกู้คืน เทียบกัน1-2 นาที
ยืนยันไฟล์ส่งให้ลูกค้าไฟล์งานออกแบบ/เอกสาร PDFแฮชแล้วส่งค่าแฮชผ่านช่องทางอื่นไม่เกิน 1 นาที

หมายเหตุ: ผลลัพธ์ของ SHA-256 มีความยาวคงที่ 64 ตัวอักษร (256 บิต) เสมอ ไม่ว่าข้อมูลต้นฉบับจะเป็นคำว่า hello หรือไฟล์ขนาดหลายกิกะไบต์ นี่คือจุดที่ทำให้มันใช้เทียบข้อมูลได้สะดวก

ข้อผิดพลาดที่คนไทยพลาดบ่อย

1. ลืมเรื่องตัวพิมพ์ใหญ่-เล็ก อย่างที่เห็นในตัวอย่าง hello กับ Hello ให้ผลลัพธ์คนละก้อน การพิมพ์เมนูอาหาร “ข้าวผัดกะเพรา” กับ “ข้าวผัดกะเพราะ” ก็ให้แฮชต่างกันเช่นกัน ต้องมั่นใจว่าข้อมูลต้นฉบับเป๊ะทุกไบต์

**2. เทียบแฮชผ่านช่อง