วิธีตรวจค่าแฮช SHA256 ของไฟล์บน Windows
ค่าแฮช SHA256 เปรียบเหมือนลายนิ้วมือของไฟล์ ถ้าค่าแฮชของไฟล์ที่ดาวน์โหลดมาตรงกับค่าที่เผยแพร่ไว้ แปลว่าคุณได้ไฟล์ตัวเดียวกับที่เผยแพร่ ไม่ถูกแก้ไขและไม่เสียระหว่างดาวน์โหลด
หาค่าแฮชด้วย PowerShell
Get-FileHash มีอยู่ใน Windows อยู่แล้ว ให้รันในโฟลเดอร์ที่เก็บไฟล์ที่ดาวน์โหลดมา อัลกอริทึมเริ่มต้นของคำสั่งนี้คือ SHA256
Get-FileHash .\vlc-3.0.21-win64.exe -Algorithm SHA256หรือใช้พรอมต์คำสั่ง
certutil ซึ่งมีในทุกเวอร์ชันของ Windows จะแสดงค่าเดียวกันเป็นตัวพิมพ์เล็ก (Windows รุ่นเก่าจะเว้นวรรคคั่นระหว่างไบต์)
certutil -hashfile vlc-3.0.21-win64.exe SHA256เทียบค่าแบบอัตโนมัติ
วางค่าแฮชที่เผยแพร่ไว้ระหว่างเครื่องหมายคำพูด การเทียบไม่สนตัวพิมพ์เล็กหรือใหญ่ และจะแสดง True เมื่อไฟล์ตรงกัน
(Get-FileHash .\vlc-3.0.21-win64.exe).Hash -eq "PUBLISHED-SHA256-HASH"ถ้าค่าไม่ตรงกันหมายความว่าอะไร
ไฟล์นั้นไม่ใช่ไฟล์ที่เผยแพร่ไว้ อาจดาวน์โหลดไม่ครบ ถูกพร็อกซีแก้ไข หรือผู้เผยแพร่เปลี่ยนไฟล์ที่ที่อยู่เดิม อย่ารันไฟล์นั้น ให้ดาวน์โหลดใหม่จากที่อยู่ทางการ ถ้าค่าแฮชยังต่างอยู่ แสดงว่าผู้เผยแพร่น่าจะเปลี่ยนไฟล์ และ manifest จะได้รับการอัปเดตตามมา
ตรวจลายเซ็นดิจิทัลด้วย
ค่าแฮชพิสูจน์ว่าไฟล์ไม่ถูกเปลี่ยน ส่วนลายเซ็นบอกว่าใครเป็นผู้เผยแพร่ ใน PowerShell คำสั่ง Get-AuthenticodeSignature จะแสดงผู้ลงนามและบอกว่าลายเซ็นใช้ได้หรือไม่ ใน File Explorer ให้คลิกขวาที่ไฟล์แล้วไปที่ คุณสมบัติ → ลายเซ็นดิจิทัล
Get-AuthenticodeSignature .\vlc-3.0.21-win64.exe | Format-List Status, SignerCertificateคำถามที่พบบ่อย
ค่าแฮชตรงกันแปลว่าโปรแกรมไม่มีมัลแวร์ใช่ไหม
ไม่ใช่ แปลว่าไฟล์นั้นคือไฟล์เดียวกับที่ระบุไว้ในข้อมูลแพ็กเกจ ถ้าต้องการตรวจเนื้อหา ให้สแกนไฟล์หรือค้นค่าแฮชบน VirusTotal ซึ่ง ExeAtlas มีลิงก์ไว้ให้สำหรับตัวติดตั้งทุกตัว
SHA256 ดีกว่า MD5 หรือ SHA1 ไหม
ดีกว่า MD5 และ SHA1 สามารถจงใจปลอมได้ ส่วน SHA256 ยังทำไม่ได้ด้วยเทคโนโลยีปัจจุบัน winget จึงเลือกใช้ SHA256