🍋
Menu
Security

Password Hashing

Băm mật khẩu (Lưu trữ thông tin xác thực an toàn)

Quá trình chuyển đổi mật khẩu dạng văn bản thuần thành giá trị băm có độ dài cố định, không thể đảo ngược để lưu trữ, đảm bảo rằng ngay cả khi cơ sở dữ liệu bị xâm phạm, mật khẩu gốc không thể dễ dàng phục hồi.

Chi tiết kỹ thuật

Các thuật toán băm mật khẩu phải chủ đích chậm để chống tấn công brute-force: bcrypt (1999, hệ số công việc có thể điều chỉnh, đầu ra 184-bit), scrypt (2009, đòi hỏi bộ nhớ, chống tấn công GPU), và Argon2 (2015, người thắng cuộc thi Password Hashing Competition, cấu hình thời gian/bộ nhớ/song song). Mỗi mật khẩu được kết hợp với một salt ngẫu nhiên duy nhất trước khi băm để ngăn chặn tấn công rainbow table. Pepper (bí mật phía máy chủ) bổ sung thêm bảo vệ. Hàm băm mật mã thô (SHA-256) không phù hợp vì được thiết kế để nhanh, cho phép hàng tỷ lần đoán mỗi giây trên GPU. OWASP khuyến nghị Argon2id là lựa chọn ưu tiên.

Ví dụ

```
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)
```

Công cụ liên quan

Thuật ngữ liên quan