กลับไปหน้า Security
ทริคSecurity

พื้นฐานการทำ Hashing

Hashing คือการสร้างค่าลายนิ้วมือของข้อมูล ซึ่งโดยทั่วไปไม่ควรถอดกลับเป็นข้อมูลเดิมได้.

เริ่มอ่านตรงนี้ก่อน

อธิบายแบบง่าย

พื้นฐานการทำ Hashing คือเรื่องที่ช่วยให้เราใช้ป้องกันข้อมูล สิทธิ์ key token และความเสี่ยงจากการแชร์ผิดทางได้ถูกทางขึ้น

ระดับ

เหมาะกับคนที่เริ่มลงมือทำแล้ว

ใช้เมื่อไหร่

ต้องตรวจว่าไฟล์หรือข้อความถูกแก้หรือไม่.

อ่านแล้วทำอะไรต่อ

ระบบที่ดีไม่ควรเก็บรหัสผ่านจริง แต่เก็บค่าแฮชของรหัสผ่านที่มี salt และใช้วิธีคำนวณที่ออกแบบมาสำหรับรหัสผ่านโดยเฉพาะ.

เห็นภาพ: ทริคนี้เป็นยังไง

ข้อมูลเข้า

password123

แฮช SHA-256 (ทางเดียว)

ef92b778bafe771e 89245b89ecbc08a4 …แปลงกลับเป็นรหัสเดิมไม่ได้

แฮช = แปลงทางเดียว แปลงกลับไม่ได้ (ต่างจากเข้ารหัส)

ใช้ตอนไหน?

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

ความหมาย

Hash ใช้ตอบว่า 'ข้อมูลนี้เหมือนเดิมไหม' หรือใช้กับการเก็บรหัสผ่านแบบมี salt (ค่าสุ่มที่เติมเข้าไปก่อนทำแฮชเพื่อให้เดายาก) และ work factor (ความหนักของการคำนวณที่ตั้งใจให้ช้าลงเพื่อกันการเดา). Hash ไม่ใช่การเข้ารหัส เพราะไม่ได้ออกแบบมาให้ถอดกลับ.

วิธีคิดเรื่องแฮชแบบเข้าใจง่าย

ข้อมูลเดียวกันควรได้ hash เดิม แต่เปลี่ยนนิดเดียว hash จะเปลี่ยนมาก.

hash("Power BI") -> fixed fingerprint
hash("Power bi") -> different fingerprint

ตัวอย่างการใช้

การเก็บรหัสผ่าน

ระบบที่ดีไม่ควรเก็บรหัสผ่านจริง แต่เก็บค่าแฮชของรหัสผ่านที่มี salt และใช้วิธีคำนวณที่ออกแบบมาสำหรับรหัสผ่านโดยเฉพาะ.

ความครบถ้วนของไฟล์

ใช้ hash ตรวจว่าไฟล์แม่แบบหรือไฟล์ที่ดึงออกถูกเปลี่ยนหลังส่งต่อหรือไม่.

ลองเล่นดู