คำตอบสั้น: SHA-256 คืออัลกอริทึมสร้างค่าแฮชขนาด 256 บิต หรือ 32 ไบต์ เมื่อแสดงเป็นเลขฐานสิบหกจะยาว 64 ตัว ใช้เป็นลายนิ้วมือดิจิทัลสำหรับตรวจว่าข้อมูลตรงกับต้นฉบับอ้างอิงหรือไม่ เป็นพื้นฐานของงานตรวจไฟล์ สำรองข้อมูล และลายเซ็นดิจิทัล แต่ไม่ได้ซ่อนข้อมูล และไม่ควรใช้เดี่ยว ๆ จัดเก็บรหัสผ่าน

เมื่อดาวน์โหลดโปรแกรม ย้ายไฟล์ไปยัง NAS หรือกู้ข้อมูลจาก Backup เราจะรู้ได้อย่างไรว่าไฟล์ยังครบเหมือนเดิม? SHA-256 ช่วยตอบคำถามนี้ด้วยการคำนวณค่าที่เปรียบเทียบได้ แทนการเปิดดูข้อมูลทุกส่วนด้วยตนเอง บทความนี้อธิบายหลักการ ข้อจำกัด และวิธีตรวจ SHA-256 บน Windows, macOS และ Linux ที่นำไปใช้ได้จริง

SHA-256 คืออะไร และทำไมผลลัพธ์จึงยาว 64 ตัว?

SHA-256 ย่อมาจาก Secure Hash Algorithm 256-bit เป็นฟังก์ชันแฮชเชิงเข้ารหัสในตระกูล SHA-2 ซึ่งระบุในมาตรฐาน NIST FIPS 180-4 รับข้อมูลอย่างข้อความ เอกสาร รูปภาพ หรือไฟล์ติดตั้ง แล้วสร้างผลลัพธ์ที่เรียกว่า Hash หรือ Message Digest

ผลลัพธ์ SHA-256 มีขนาดคงที่ 256 บิต = 32 ไบต์ ส่วนที่เห็นเป็นตัวอักษร 0–9 และ a–f ยาว 64 ตัว คือการแสดงผลแบบเลขฐานสิบหก (Hexadecimal) เพราะแต่ละหลักแทนข้อมูล 4 บิต จึงคำนวณได้จาก 256 ÷ 4 = 64 ไม่ว่าไฟล์จะเล็กหรือใหญ่ ขนาดของค่าแฮชยังเท่าเดิม

ตัวอย่าง ค่า SHA-256 ของข้อความ hello แบบ UTF-8 โดยไม่มีช่องว่างหรือการขึ้นบรรทัดใหม่ต่อท้าย คือ

2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

ค่าแฮชเป็นเหมือนลายนิ้วมือของข้อมูล แต่ไม่ใช่หมายเลขเฉพาะที่รับประกันว่าไม่มีทางซ้ำกันทางคณิตศาสตร์ ข้อมูลต่างกันอาจให้ค่าเดียวกันได้ เรียกว่า Collision การออกแบบแฮชเชิงเข้ารหัสมุ่งทำให้การค้นหาคู่ที่ชนกันเป็นเรื่องยากมาก

SHA-256 ทำงานอย่างไร?

  1. รับไบต์ของข้อมูลต้นฉบับ เช่น ข้อความหรือข้อมูลภายในไฟล์
  2. เตรียมและประมวลผลข้อมูลเป็นบล็อก SHA-256 เติมข้อมูลตามกติกาและคำนวณหลายรอบด้วยการดำเนินการระดับบิต
  3. สร้างค่าแฮช 256 บิต เพื่อนำไปแสดงผลหรือเปรียบเทียบกับค่าอ้างอิง

ข้อมูลที่มีไบต์เหมือนกันทุกครั้งจะให้แฮชเดียวกัน ส่วนการเปลี่ยน hello เป็น Hello หรือเพิ่มช่องว่างเพียงตัวเดียว มักทำให้แฮชเปลี่ยนไปอย่างมาก เรียกว่า Avalanche Effect จึงตรวจความแตกต่างเล็กน้อยของไฟล์ได้โดยไม่ต้องตีความเนื้อหาข้างใน

ชื่อไฟล์ไม่ใช่เนื้อหาไฟล์: การเปลี่ยนชื่อไฟล์อย่างเดียวไม่ทำให้ SHA-256 ของเนื้อหาเปลี่ยน แต่การแก้ข้อความ Encoding การขึ้นบรรทัดใหม่ หรือ Metadata ที่บันทึกอยู่ภายในไฟล์อาจทำให้ค่าเปลี่ยนได้

SHA-256 สำคัญกับความปลอดภัยของข้อมูลอย่างไร?

ตรวจความสมบูรณ์ของไฟล์ที่ดาวน์โหลด

ผู้ผลิตซอฟต์แวร์อาจประกาศ SHA-256 คู่กับไฟล์ติดตั้ง เมื่อนำไฟล์ที่ดาวน์โหลดมาคำนวณแล้วได้ค่าตรงกัน ก็เป็นหลักฐานที่น่าเชื่อถือในทางปฏิบัติว่าเนื้อหาไฟล์ตรงกับไฟล์อ้างอิง หากไม่ตรง อาจเลือกคนละรุ่น ดาวน์โหลดไม่ครบ ไฟล์เสียหาย หรือถูกแก้ไข

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

ตรวจไฟล์สำรองและการย้ายข้อมูลระหว่าง Server, NAS และ Cloud

คำนวณแฮชก่อนและหลังคัดลอกช่วยตรวจว่าข้อมูลตรงกัน เหมาะกับการย้ายเอกสาร ไฟล์ฐานข้อมูลที่สำรองแล้ว หรือชุดข้อมูลสำคัญ ควรใช้ไฟล์ที่หยุดเปลี่ยนแปลงแล้ว หรือ Snapshot/Backup ที่สอดคล้องกัน แทนการอ่านไฟล์ฐานข้อมูลที่ยังถูกเขียนระหว่างคัดลอก

หากระบบ Backup บีบอัด เข้ารหัส หรือแบ่งข้อมูลเป็นชิ้น อย่านำแฮชของไฟล์ต้นฉบับไปเทียบกับไฟล์ Container โดยตรง ให้ใช้กลไกตรวจสอบของซอฟต์แวร์ หรือ Restore ออกมาแล้วเทียบไฟล์เดียวกัน แฮชตรงกันไม่ทดแทนการทดสอบ Restore เพราะยังต้องตรวจว่าเปิดไฟล์และใช้งานระบบที่กู้คืนได้จริง

เป็นส่วนหนึ่งของลายเซ็นดิจิทัล

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

ใช้ใน Bitcoin และ Blockchain บางระบบ

Bitcoin ใช้ SHA-256 แบบคำนวณสองครั้งในส่วนของ Block Header และ Proof of Work รวมถึงการเชื่อมโยงบล็อก การเปลี่ยนข้อมูลทำให้ค่าแฮชที่เกี่ยวข้องเปลี่ยนและตรวจพบได้ ความปลอดภัยยังอาศัยกติกาเครือข่ายและกลไกฉันทามติร่วมด้วย ไม่ใช่แฮชเพียงอย่างเดียว และ Blockchain ทุกระบบไม่ได้ใช้อัลกอริทึมเดียวกัน อ้างอิง Bitcoin Developer Reference: Block Headers

SHA-256 กับ AES-256 ต่างกันอย่างไร?

SHA-256 เป็น Hashing ส่วน AES-256 เป็น Encryption แม้มีเลข 256 เหมือนกัน แต่หมายถึงคนละสิ่ง: SHA-256 ให้ผลลัพธ์แฮช 256 บิต ขณะที่ AES-256 ใช้กุญแจเข้ารหัส 256 บิต

เปรียบเทียบการสร้างแฮชกับการเข้ารหัส
ประเด็นSHA-256AES-256
หน้าที่สร้างค่าแฮชเพื่อตรวจความตรงกันของข้อมูลซ่อนเนื้อหาข้อมูลให้ผู้ไม่มีกุญแจอ่านไม่ได้
แปลงกลับไม่มีขั้นตอนถอดแฮชกลับเป็นต้นฉบับถอดกลับได้เมื่อมีกุญแจและข้อมูลประกอบที่ถูกต้อง
กุญแจSHA-256 ปกติไม่ใช้กุญแจใช้กุญแจลับ
ตัวอย่างงานตรวจ checksum และใช้ร่วมกับลายเซ็นดิจิทัลเข้ารหัสไฟล์ ดิสก์ หรือข้อมูลสำรอง

การไม่มีขั้นตอนถอดแฮชไม่ได้ทำให้ข้อมูลที่เดาง่ายปลอดภัยเสมอ ผู้โจมตีอาจลองคำที่คาดไว้แล้วคำนวณเทียบ เช่น รหัสผ่านสั้น ๆ จึงต้องแยกการตรวจไฟล์ออกจากการออกแบบระบบเก็บรหัสผ่าน

ใช้ SHA-256 เก็บรหัสผ่านได้ไหม?

ไม่ควรใช้ SHA-256 ตรง ๆ เป็นวิธีเก็บรหัสผ่าน แม้เติม Salt แล้ว เพราะคำนวณได้รวดเร็ว ผู้โจมตีที่ได้ฐานข้อมูลแฮชไปจึงลองเดารหัสผ่านจำนวนมากได้ Salt ช่วยให้รหัสผ่านเดียวกันของแต่ละบัญชีไม่สร้างค่าที่เก็บเหมือนกัน แต่ไม่ได้ทำให้ SHA-256 กลายเป็นอัลกอริทึมเก็บรหัสผ่านที่เหมาะสม

OWASP Password Storage Cheat Sheet แนะนำ Argon2id เป็นตัวเลือกแรก ใช้ scrypt เมื่อใช้ Argon2id ไม่ได้ และใช้ bcrypt สำหรับระบบเดิมที่ยังต้องรองรับ พร้อม Salt เฉพาะแต่ละรหัสผ่านและพารามิเตอร์ที่เหมาะสม นักพัฒนาควรใช้ไลบรารีสำหรับ Password Hashing โดยตรง

วิธีตรวจ SHA-256 บน Windows, macOS และ Linux

เริ่มจากดาวน์โหลดไฟล์และคัดลอกค่า SHA-256 อ้างอิงของรุ่น ภาษา สถาปัตยกรรม และไฟล์เดียวกัน จากผู้ผลิต จากนั้นใช้คำสั่งของระบบปฏิบัติการตามด้านล่าง เปลี่ยนพาธตัวอย่างให้ตรงกับไฟล์ของคุณ

Windows: ตรวจด้วย PowerShell

Get-FileHash -LiteralPath 'C:\Downloads\example.zip' -Algorithm SHA256

เปรียบเทียบค่าที่อยู่ในคอลัมน์ Hash กับค่าอ้างอิงให้ครบทุกหลัก คำสั่งนี้อ่านไฟล์เพื่อคำนวณโดยไม่แก้ไขเนื้อหา ดูรายละเอียดจาก Microsoft Learn: Get-FileHash

macOS: ตรวจด้วย Terminal

shasum -a 256 "$HOME/Downloads/example.zip"

ระบุ -a 256 ให้ครบ เพราะ shasum ปกติใช้ SHA-1 เมื่อไม่เลือกอัลกอริทึม เครื่องหมายคำพูดช่วยรองรับพาธที่มีช่องว่าง อ้างอิง คู่มือ shasum

Linux: ตรวจด้วย sha256sum

sha256sum 'example.zip'

รันในโฟลเดอร์ที่เก็บไฟล์ หรือเปลี่ยนเป็นพาธเต็ม คำสั่งนี้มีใน Linux ส่วนใหญ่ที่ติดตั้ง GNU Coreutils อ้างอิง GNU Coreutils: SHA-2 utilities

เปรียบเทียบเฉพาะค่าแฮช: ไม่รวมชื่อไฟล์หรือช่องว่างคั่นผลลัพธ์ อักษร A–F พิมพ์ใหญ่และ a–f พิมพ์เล็กในเลขฐานสิบหกแทนค่าเดียวกัน จึงไม่ใช่เหตุให้ไฟล์ต่างกัน

ถ้าค่า SHA-256 ไม่ตรงกัน ควรทำอย่างไร?

  1. พักการเปิดหรือติดตั้งไฟล์นั้น จนกว่าจะทราบสาเหตุ
  2. ตรวจว่าเทียบไฟล์เดียวกัน รวมถึงเวอร์ชัน ระบบปฏิบัติการ ภาษา และการเทียบไฟล์ ZIP กับไฟล์ภายใน ZIP
  3. ตรวจอัลกอริทึมและค่าอ้างอิง อย่านำ SHA-1 หรือ MD5 มาเทียบกับ SHA-256 และคัดลอกค่าให้ครบ
  4. ดาวน์โหลดใหม่จากเว็บไซต์ผู้ผลิต แล้วคำนวณซ้ำ หากยังไม่ตรง ให้ตรวจประกาศหรือติดต่อผู้ผลิต

ค่าไม่ตรงบอกว่าไบต์ต่างกัน แต่ไม่ได้บอกสาเหตุว่าเป็นการโจมตีเสมอไป ส่วนค่าตรงบอกความตรงกันกับข้อมูลอ้างอิง ไม่ได้ยืนยันว่าไฟล์ไม่มีมัลแวร์

SHA-256 ปลอดภัยแค่ไหน และมีข้อจำกัดอะไร?

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

  • ไม่ซ่อนข้อมูล: หากต้องการความลับ ต้องใช้การเข้ารหัสที่เหมาะสมร่วมด้วย
  • ไม่รับรองผู้ส่งด้วยตัวเอง: งานยืนยันที่มาต้องใช้ลายเซ็นดิจิทัล หรือกลไกยืนยันข้อความที่ใช้กุญแจตามโจทย์
  • ไม่ตรวจมัลแวร์แทนระบบป้องกัน: ไฟล์อันตรายก็มี SHA-256 ที่ถูกต้องของตัวมันเองได้
  • ไม่สำรองหรือกู้ไฟล์ให้: แฮชมีไว้เปรียบเทียบ ไม่สามารถใช้สร้างไฟล์ต้นฉบับกลับมาได้

คำถามที่พบบ่อยเกี่ยวกับ SHA-256

SHA-256 ถอดรหัสกลับได้ไหม?

SHA-256 ไม่ใช่การเข้ารหัส จึงไม่มีขั้นตอนถอดกลับแบบ AES แต่ข้อความที่เดาง่ายยังอาจถูกค้นพบด้วยการลองคำนวณคำต่าง ๆ แล้วเทียบแฮช จึงไม่ควรใช้แฮชเพื่อซ่อนรหัสผ่านหรือข้อมูลส่วนตัวที่คาดเดาได้

ค่า SHA-256 ตรงกันแปลว่าไฟล์ไม่มีไวรัสหรือไม่?

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

ทำไม SHA-256 จึงมี 64 ตัวอักษร?

เมื่อแสดงเป็นเลขฐานสิบหก แต่ละหลักแทน 4 บิต ผลลัพธ์ 256 บิตจึงเท่ากับ 64 หลัก ส่วนขนาดข้อมูลไบนารีจริงคือ 32 ไบต์

เปลี่ยนชื่อไฟล์แล้วค่า SHA-256 เปลี่ยนไหม?

ไม่เปลี่ยน หากไบต์ภายในไฟล์ยังเหมือนเดิม การเปลี่ยนชื่อหรือย้ายโฟลเดอร์เพียงอย่างเดียวไม่เปลี่ยนแฮชของเนื้อหา แต่การบันทึกไฟล์ใหม่หรือแก้ Metadata ภายในไฟล์อาจเปลี่ยนได้

ตรวจ SHA-256 ผ่านเว็บออนไลน์ได้ไหม?

ทำได้สำหรับข้อมูลที่เปิดเผยได้ แต่เอกสารภายในและข้อมูลสำคัญควรคำนวณบนเครื่องด้วย PowerShell หรือ Terminal เพื่อลดความจำเป็นในการส่งไฟล์ไปยังบริการภายนอก และตรวจว่าเครื่องมือใช้อัลกอริทึม SHA-256 จริง

นำ SHA-256 ไปใช้กับงาน IT อย่างไรให้ได้ประโยชน์?

เริ่มจากตรวจไฟล์ติดตั้งสำคัญ เก็บค่าอ้างอิงจากแหล่งที่เชื่อถือได้ และเพิ่มการตรวจความสมบูรณ์ในขั้นตอนย้ายหรือสำรองข้อมูล สำหรับองค์กร ควรใช้ร่วมกับสิทธิ์เข้าถึง การเข้ารหัส การเก็บสำเนาหลายชุด และการทดสอบกู้คืน เพื่อให้รู้ทั้งว่าไฟล์ตรงกันและระบบกลับมาใช้งานได้จริง

อ่านต่อ: Snapshot, Immutable Snapshot และ Backup 3-2-1 และ วิธีป้องกัน Ransomware บน Synology NAS

ดูแนวทางระบบ Server และ Storage ของ SyncTech หรือ ปรึกษาทีมงานเรื่องการจัดเก็บและสำรองข้อมูลขององค์กร

แหล่งข้อมูลหลัก: NIST, OWASP, Microsoft Learn, Perl Documentation, GNU Coreutils, Debian และ Bitcoin Developer Reference ตามลิงก์ในแต่ละหัวข้อ ตรวจทานข้อมูลวันที่ 11 พฤศจิกายน 2569