Checksum คือสตริงข้อความที่ได้จากซอฟต์แวร์โดยใช้ hash function ไม่มี checksum สองตัวที่เหมือนกัน หากดาวน์โหลดซอฟต์แวร์จากอินเทอร์เน็ต วิธีหนึ่งตรวจสอบความสมบูรณ์คือเปรียบเทียบ checksum กับที่เว็บไซต์ให้มา หากตรงกัน ซอฟต์แวร์แท้และไม่ถูกแก้ไข บทความนี้แนะนำวิธีตรวจสอบและยืนยัน checksums ใน Linux
แม้ทำได้ง่ายใน terminal แต่ที่นี่จะเรียนรู้วิธีตรวจสอบและยืนยัน checksums ด้วยเครื่องมือกราฟิก: GtkHash ที่เรียบง่ายมาก
การติดตั้ง
สำหรับดิสโทรส่วนใหญ่ หา GtkHash ได้ใน package manager หรือ Software Center หากอยู่ Ubuntu หรือดิสโทรที่เข้ากันได้และติดตั้งจาก terminal:
sudo apt install gtkhash
openSUSE: ต้องเพิ่ม repository ก่อนติดตั้ง ดูข้อมูลเพิ่มเติมที่นี่
Arch และ Manjaro:
sudo pacman -S gtkhash
ติดตั้งเสร็จ หาในแอปที่ติดตั้งแล้วและรัน
สร้าง Hashes
อินเทอร์เฟซ GtkHash ตรงไปตรงมา คำนวณ hashes สำหรับไฟล์หนึ่งหรือหลายไฟล์: คลิกปุ่ม "Add" มุมซ้ายบน
ชี้ requester ไปที่ตำแหน่งไฟล์และเลือก สามารถเลือกหลายไฟล์ได้โดยค้าง Ctrl คลิก แล้วคลิก "Open" มุมขวาบน
รายการ GtkHash จะเติมไฟล์ที่เลือก เพิ่มไฟล์เพิ่มได้โดยทำซ้ำขั้นตอนก่อนหน้า
คลิกปุ่ม "Hash" มุมขวาล่างหน้าต่าง GtkHash เพื่อคำนวณ hashes สำหรับไฟล์ทั้งหมดในรายการ
GtkHash คำนวณหลายประเภท hash โดยค่าเริ่มต้น และแสดงในคอลัมน์ข้างไฟล์แต่ละตัว
คัดลอก hash ของไฟล์ไป clipboard: คลิกขวาบนไฟล์ เลือกประเภท hash ที่ต้องการจาก submenu "Copy Digest" แล้ววาง hash ที่คัดลอกไว้ที่อื่น
หรือบันทึก hash ลงไฟล์ผ่าน "File -> Save As"
ตรวจสอบ Hashes
ตรวจสอบความสมบูรณ์ข้อมูลไฟล์ด้วย GtkHash: เลือก "File -> Open" เลือกไฟล์ hash ที่มาพร้อมไฟล์หลัก ไฟล์ hash ปกติมี extension "sha1", "md5", หรือ "sfv" GtkHash รองรับยอดนิยมทั้งหมด
โหลดไฟล์เสร็จ คลิกปุ่ม "Hash" มุมขวาล่าง GtkHash จะคำนวณและเปรียบเทียบ hash ของไฟล์กับที่รายงาน และแสดงผล ในสกรีนช็อตของเรา มี 2 matches และ 2 failures
Hashes เพิ่มเติม
GtkHash มาพร้อม hashing algorithms ยอดนิยมเปิดอยู่ แต่ไม่ใช่ทั้งหมดที่รองรับ สำหรับเพิ่มเติม ไปที่ "Edit -> Preferences"
เลือกได้จาก hash functions หลายสิบตัว จะพบตัวที่ต้องการแน่นอน
เปรียบเทียบ Checksum จาก Terminal
หากอยู่ในสภาพแวดล้อม server วิธีเดียวเปรียบเทียบ checksum คือผ่าน terminal โชคดีที่ตรวจสอบและสร้าง file hashes บน terminal ง่ายเท่า GUI ดิสโทรส่วนใหญ่มาพร้อมเครื่องมือสำหรับงานนี้ ยอดนิยม:
- md5sum
- shasum
- sha256sum
- sha384sum
- sha512sum
การใช้งานง่าย เพราะทำงานเหมือนกันทุกตัว: พิมพ์ชื่อคำสั่ง ตามด้วยชื่อไฟล์ที่ต้องการคำนวณ hash ตัวอย่าง คำนวณ SHA-512 hash สำหรับ Arch Linux installation ISO ที่ดาวน์โหลด:
sha512sum archlinux-2020.05.01-x86_64.iso
sha512sum คือคำสั่งสำหรับ hash algorithm ที่เลือก หลังรอสักครู่ จะเห็น SHA-512 hash บนหน้าจอ
อนาคตอาจต้อง re-check ไฟล์ จึงตัดสินใจ output ผลลัพธ์ลงไฟล์แทนหน้าจอ คำสั่ง hash ไม่มีฟังก์ชันนี้ เพราะใน Linux แค่ redirect ด้วย > หลังคำสั่งและชื่อไฟล์ output จะบันทึกในไฟล์แทนการพิมพ์บนหน้าจอ ใช้ sha256sum ได้:
sha256sum archlinux-2020.05.01-x86_64.iso > archlinux-2020.05.01-x86_64.iso.sha256
จะ output ผลลัพธ์ลง text file ทั่วไป ที่จะพบ hash ของไฟล์ตามด้วยชื่อไฟล์
ตรวจสอบไฟล์กับ hash ของมัน: เพิ่มสวิตช์ -c ให้คำสั่ง และใช้ไฟล์ hash แทนไฟล์จริง กล่าวคือ:
sha256sum -c archlinux-2020.05.01-x86_64.iso.sha256
แม้ตรวจสอบ checksums ใน Linux ง่าย แต่น่าจะไม่สมจริงที่จะตรวจสอบ hash ทุกไฟล์ ควรทำสำหรับข้อมูลสำคัญหรือ Linux ISO ที่ดาวน์โหลดจากเว็บ หากใช้ Mac วิธีเดียวกันใช้ได้