Sinh chuỗi băm mật khẩu bằng nhiều thuật toán khác nhau như MD5, SHA1, SHA256, SHA512, bcrypt...
Features
- Đa thuật toán: Hỗ trợ MD5, SHA1, SHA224, SHA256, SHA512, bcrypt và các hàm băm phổ biến khác
- Xử lý tức thì: Sinh hash theo thời gian thực ngay khi nhập dữ liệu
- Bảo mật cục bộ: Toàn bộ thao tác diễn ra trên trình duyệt, dữ liệu không rời khỏi thiết bị
- Sao chép nhanh: Một cú nhấp để sao chép hash vào clipboard
Usage Guide
- Nhập mật khẩu: Gõ hoặc dán mật khẩu cần băm vào ô nhập liệu
- Chọn thuật toán: Chọn hàm băm mong muốn (MD5, SHA256, bcrypt...)
- Sao chép kết quả: Nhấn nút sao chép để lưu hash vào clipboard
Technical Details
Nguyên lý băm mật khẩu
Băm mật khẩu biến chuỗi gốc thành chuỗi cố định khó đảo ngược. Công cụ hỗ trợ các thuật toán truyền thống (MD5, SHA-1 – chỉ dùng cho mục đích học tập), họ SHA-2 (SHA-256, SHA-512) và thuật toán thích ứng như bcrypt, scrypt, Argon2 – khuyến nghị cho hệ thống thực tế.
Salt, pepper và kéo giãn khóa
Salt là dữ liệu ngẫu nhiên thêm vào từng mật khẩu trước khi băm giúp chống rainbow Bảng. Pepper là khóa bí mật dùng chung cần lưu riêng. Kéo giãn khóa (key stretching) lặp thuật toán hàng nghìn vòng để làm chậm brute force.
Thực hành bảo mật
Không lưu mật khẩu dạng rõ, luôn dùng thuật toán băm mạnh (bcrypt/Argon2), quản lý salt đúng cách và cấu hình hệ số chi phí phù hợp. Công cụ cung cấp kiến thức về các dạng tấn công phổ biến như rainbow Bảng hay từ điển.
Frequently Asked Questions
- Thuật toán nào nên dùng để băm mật khẩu?
- Trong môi trường sản xuất hãy dùng các thuật toán thích ứng như Argon2 (khuyến nghị OWASP), bcrypt hoặc scrypt. MD5/SHA-1 chỉ dùng cho mục đích học tập vì quá nhanh và dễ bị brute force. SHA-256 chỉ phù hợp khi kết hợp thêm salt và cơ chế kéo giãn khóa (PBKDF2).
- Salt là gì và vì sao quan trọng?
- Salt là chuỗi ngẫu nhiên (>=16 byte) thêm vào mật khẩu trước khi băm. Nó đảm bảo cùng mật khẩu sẽ ra hash khác nhau, chống rainbow Bảng. Salt phải được sinh ngẫu nhiên, lưu kèm hash và không cần bí mật. Các thư viện bcrypt/Argon2 tự xử lý salt.
- Làm sao xác minh mật khẩu với hash lưu trữ?
- Khi người dùng đăng nhập, lấy salt và tham số đi kèm hash, băm lại mật khẩu nhập vào bằng cùng thuật toán rồi so sánh theo phương thức constant-time. Không bao giờ giải hash ngược. Với bcrypt/Argon2, dùng hàm verify của thư viện để tự động xử lý.
- Hash mật khẩu trên trình duyệt có an toàn không?
- Chỉ băm phía client là chưa đủ. Máy chủ vẫn phải băm lại bằng thuật toán mạnh vì nếu cơ sở dữ liệu bị lộ, kẻ tấn công có thể dùng hash client làm mật khẩu (pass-the-hash). Băm phía client chỉ nên xem như lớp phòng vệ bổ sung, luôn truyền qua HTTPS.
Related Documentation
- Tiêu chuẩn mật mã NIST - Tiêu chuẩn mật mã chính thức của NIST
- OWASP Cryptographic Storage - Thực hành lưu trữ mật khẩu an toàn
- API mật mã Web theo MDN - API mật mã trên trình duyệt
- OWASP Password Storage - Khuyến nghị lưu trữ mật khẩu
- RFC 5246 - TLS - Đặc tả TLS bảo vệ mật khẩu khi truyền