🍋
Menu
Security

Password Hashing

Password Hashing (การจัดเก็บข้อมูลรับรองตัวตนอย่างปลอดภัย)

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

รายละเอียดทางเทคนิค

อัลกอริทึม password hashing ต้องช้าโดยตั้งใจเพื่อต้านทานการโจมตีแบบ brute-force: bcrypt (1999, work factor ปรับได้, เอาต์พุต 184 บิต), scrypt (2009, memory-hard, ต้านทานการโจมตี GPU) และ Argon2 (2015, ผู้ชนะ Password Hashing Competition, กำหนดเวลา/หน่วยความจำ/ความขนานได้) รหัสผ่านแต่ละตัวจะถูกรวมกับ salt สุ่มที่ไม่ซ้ำก่อนแฮชเพื่อป้องกันการโจมตีด้วย rainbow table Pepper (ความลับฝั่งเซิร์ฟเวอร์) เพิ่มการป้องกันเพิ่มเติม แฮชการเข้ารหัสดิบ (SHA-256) ไม่เหมาะเพราะออกแบบมาให้เร็ว ทำให้เดาได้หลายพันล้านครั้งต่อวินาทีบน GPU OWASP แนะนำ Argon2id เป็นตัวเลือกหลัก

ตัวอย่าง

```
Password hashing comparison:

  bcrypt:  $2b$12$salt22chars..hash31chars..
           Cost factor 12 → ~250ms per hash

  argon2id: $argon2id$v=19$m=65536,t=3,p=4$salt$hash
            Memory: 64MB, Iterations: 3, Parallelism: 4

  Never use: MD5, SHA-256 alone (too fast → brute-forceable)
```

เครื่องมือที่เกี่ยวข้อง

คำศัพท์ที่เกี่ยวข้อง