พื้นฐานการทำ Hashing
Hashing คือการสร้างค่าลายนิ้วมือของข้อมูล ซึ่งโดยทั่วไปไม่ควรถอดกลับเป็นข้อมูลเดิมได้.
เริ่มอ่านตรงนี้ก่อน
อธิบายแบบง่าย
พื้นฐานการทำ Hashing คือเรื่องที่ช่วยให้เราใช้ป้องกันข้อมูล สิทธิ์ key token และความเสี่ยงจากการแชร์ผิดทางได้ถูกทางขึ้น
ระดับ
เหมาะกับคนที่เริ่มลงมือทำแล้ว
ใช้เมื่อไหร่
ต้องตรวจว่าไฟล์หรือข้อความถูกแก้หรือไม่.
อ่านแล้วทำอะไรต่อ
ระบบที่ดีไม่ควรเก็บรหัสผ่านจริง แต่เก็บค่าแฮชของรหัสผ่านที่มี salt และใช้วิธีคำนวณที่ออกแบบมาสำหรับรหัสผ่านโดยเฉพาะ.
เห็นภาพ: ทริคนี้เป็นยังไง
password123
ef92b778bafe771e 89245b89ecbc08a4 …แปลงกลับเป็นรหัสเดิมไม่ได้
ใช้ตอนไหน?
- ต้องตรวจว่าไฟล์หรือข้อความถูกแก้หรือไม่.
- ต้องเก็บรหัสผ่านโดยไม่เก็บรหัสผ่านจริง.
- ต้องสร้างค่าไว้เปรียบเทียบข้อมูลแบบไม่เปิดค่าจริงในบางกรณี.
ความหมาย
Hash ใช้ตอบว่า 'ข้อมูลนี้เหมือนเดิมไหม' หรือใช้กับการเก็บรหัสผ่านแบบมี salt (ค่าสุ่มที่เติมเข้าไปก่อนทำแฮชเพื่อให้เดายาก) และ work factor (ความหนักของการคำนวณที่ตั้งใจให้ช้าลงเพื่อกันการเดา). Hash ไม่ใช่การเข้ารหัส เพราะไม่ได้ออกแบบมาให้ถอดกลับ.
วิธีคิดเรื่องแฮชแบบเข้าใจง่าย
ข้อมูลเดียวกันควรได้ hash เดิม แต่เปลี่ยนนิดเดียว hash จะเปลี่ยนมาก.
hash("Power BI") -> fixed fingerprint
hash("Power bi") -> different fingerprintตัวอย่างการใช้
การเก็บรหัสผ่าน
ระบบที่ดีไม่ควรเก็บรหัสผ่านจริง แต่เก็บค่าแฮชของรหัสผ่านที่มี salt และใช้วิธีคำนวณที่ออกแบบมาสำหรับรหัสผ่านโดยเฉพาะ.
ความครบถ้วนของไฟล์
ใช้ hash ตรวจว่าไฟล์แม่แบบหรือไฟล์ที่ดึงออกถูกเปลี่ยนหลังส่งต่อหรือไม่.