Độ mạnh & Hash Mật khẩu

Đo độ mạnh thật của mật khẩu, rồi tạo hoặc xác minh hash Argon2id/bcrypt. Mọi xử lý diễn ra ngay trong trình duyệt — mật khẩu không bao giờ rời khỏi thiết bị.

File không bao giờ rời khỏi thiết bị của bạn

Công cụ này làm gì

Công cụ này có hai chức năng: cho bạn biết mật khẩu mạnh đến mức nào trong thực tế, và tạo ra một hash mật khẩu chuẩn để lưu trữ. Gõ mật khẩu để thấy điểm độ mạnh cập nhật theo từng ký tự, hoặc chuyển sang chế độ hash để biến nó thành chuỗi PHC Argon2id hoặc bcrypt mà bạn có thể dán thẳng vào database hay file cấu hình.

Mọi thứ diễn ra ngay trên thiết bị của bạn. Không có bước upload, không có bản ghi mật khẩu phía server, và không có giới hạn dung lượng do backend áp đặt — cả việc phân tích lẫn hash đều chạy cục bộ, điều này quan trọng nhất với đúng loại dữ liệu bạn không muốn rời khỏi trình duyệt.

Giải thích điểm độ mạnh

ĐiểmNhãnÝ nghĩa
0Rất yếuĐoán được trong vài giây — từ thông dụng, tên riêng hoặc mẫu đơn giản
1YếuĐoán được nhanh chóng bằng tấn công từ điển + mẫu cơ bản
2Tạm ổnLàm chậm kẻ tấn công không chuyên, nhưng không cản được kẻ quyết tâm
3TốtChống lại phần lớn kiểu đoán tự động trong thời gian hợp lý
4MạnhBất khả thi để đoán với các phương pháp tấn công hiện tại

Điểm này đến từ zxcvbn, mô hình hóa hành vi kẻ tấn công thực tế thay vì một quy tắc kiểu checkbox như "phải có ký tự đặc biệt". Một cụm mật khẩu dài, khác thường có thể đạt điểm cao hơn một mật khẩu ngắn nhồi nhét các ký tự thay thế kiểu P@ssw0rd!, vì mẫu sau chính là kiểu mà công cụ bẻ khóa đã kiểm tra đầu tiên.

Tạo hash mật khẩu: Argon2id so với bcrypt

Thuật toánMục tiêu thiết kếKhi nào nên chọn
Argon2idNgười chiến thắng cuộc thi Password Hashing Competition 2015; chi phí bộ nhớ + thời gian có thể tùy chỉnhLựa chọn mặc định cho hệ thống mới — chống được cả tấn công GPU lẫn kênh kề (side-channel)
bcryptCũ hơn, được triển khai rộng rãi, chỉ tùy chỉnh được chi phí thời gianDùng khi một hệ thống bạn đang tích hợp yêu cầu cụ thể thuật toán này
Mẹo: Đừng bao giờ dùng một hash nhanh, đa dụng như MD5, SHA-1 hay SHA-256 thuần để lưu mật khẩu. Chúng được thiết kế để nhanh, ngược hoàn toàn với điều bạn cần ở đây — xem phần FAQ phía trên để hiểu vì sao tốc độ đó lại trở thành điểm yếu.

Định dạng chuỗi PHC

Cả hai thuật toán đều tạo ra một chuỗi tự-mô-tả duy nhất — chuỗi PHC — gói gọn tên thuật toán, phiên bản, tham số chi phí và salt cùng với chính hash đó. Điều này có nghĩa việc xác minh không bao giờ yêu cầu bạn phải nhớ hay lưu riêng các thiết lập đã dùng để tạo ra nó; chuỗi đó mang theo mọi thứ cần thiết để kiểm tra mật khẩu sau này.

Giới hạn 72 byte của bcrypt

Nếu bạn chọn bcrypt, hãy nhớ rằng nó chỉ xét 72 byte đầu tiên của bất cứ thứ gì bạn gõ vào — phần còn lại bị âm thầm bỏ qua, nên hai cụm mật khẩu dài khác nhau nhưng chung 72 byte đầu sẽ cho ra hash giống hệt nhau. Argon2id không có giới hạn này, đó là lý do nó là lựa chọn mặc định ở đây.

Mật khẩu của bạn không bao giờ rời khỏi thiết bị

Việc chấm điểm độ mạnh chạy trực tiếp trên trang, còn hash chạy qua một module WebAssembly nhỏ trong một worker nền — tất cả đều nằm trong tab trình duyệt của bạn. Không có gì từng được gửi qua mạng, nên không có bản ghi, không có request, và không có server nào từng thấy mật khẩu bạn đã gõ.

Nếu bạn cần lấy dấu vân tay hoặc xác minh tính toàn vẹn của một file, xem Công cụ Hash & Checksum. Nếu bạn cần mã hóa cả một file để chỉ ai có mật khẩu mới mở được, xem Mã hóa & giải mã file — cả hai đều xử lý ngay trên thiết bị giống như công cụ này.

Câu hỏi thường gặp

Công cụ kiểm tra và tạo hash mật khẩu này có thật sự miễn phí không?
Có. Không cần đăng ký, không watermark, và không giới hạn số lượng mật khẩu bạn có thể kiểm tra hay hash. Công cụ chạy hoàn toàn trong trình duyệt nên không phát sinh chi phí server.
Điểm độ mạnh thực sự đo lường điều gì?
Công cụ chạy zxcvbn, một bộ ước lượng độ mạnh không chỉ dựa vào quy tắc đơn giản kiểu "có số và ký tự đặc biệt", mà cố gắng đoán mật khẩu của bạn theo cách một kẻ tấn công thực sự sẽ làm — đối chiếu với từ điển, mẫu phổ biến, đường đi bàn phím và các cách thay thế ký tự dễ đoán. Kết quả là điểm 0–4 kèm thời gian bẻ khóa ước tính, một tín hiệu thực tế hơn nhiều so với chỉ dựa vào yêu cầu độ dài.
Mật khẩu của tôi có bao giờ bị upload hay gửi đi đâu không?
Không. Cả việc chấm điểm độ mạnh lẫn tạo hash đều chạy cục bộ — kiểm tra độ mạnh chạy trực tiếp trên trang, còn hash chạy qua module WebAssembly trong một worker nền, tất cả đều bên trong tab trình duyệt của bạn. Mật khẩu của bạn không bao giờ đi qua mạng.
Tại sao dùng Argon2id hay bcrypt thay vì MD5 hoặc SHA-256 để lưu mật khẩu?
MD5 và SHA-256 được thiết kế để chạy nhanh, đây lại chính là đặc tính sai lầm khi lưu mật khẩu — tốc độ đó cho phép kẻ tấn công có được database bị đánh cắp thử hàng tỷ lần đoán mỗi giây trên phần cứng rẻ tiền. Argon2id và bcrypt được thiết kế cố tình chậm, khiến việc kiểm tra một mật khẩu tốn thời gian và tài nguyên thực sự; riêng Argon2id còn tốn nhiều bộ nhớ (memory-hard), buộc kẻ tấn công phải bỏ ra RAM thật cho mỗi lần đoán và triệt tiêu lợi thế chạy song song giá rẻ của GPU. Điều đó khiến việc đoán quy mô lớn trở nên bất khả thi ngay cả sau khi dữ liệu bị rò rỉ.
Chuỗi PHC là gì?
Chuỗi PHC mã hóa mọi thứ cần thiết để xác minh một mật khẩu về sau trên đúng một dòng: tên thuật toán (argon2id, hoặc 2b cho bcrypt), phiên bản, các tham số chi phí (bộ nhớ, thời gian và mức song song), rồi đến salt và hash — mỗi trường ngăn cách nhau bằng một dấu đô-la. Bạn lưu nguyên chuỗi như khi được tạo ra; tab Verify của công cụ sẽ đọc lại toàn bộ các tham số đó từ chuỗi, nên bạn không bao giờ phải ghi riêng các thiết lập.
Giới hạn 72 byte của bcrypt là gì?
bcrypt âm thầm bỏ qua mọi byte sau byte thứ 72 trong input của bạn — một cụm mật khẩu 100 ký tự và chính cụm đó bị cắt còn 72 byte sẽ cho ra hash giống hệt nhau. Argon2id không có giới hạn này, đó là một trong những lý do công cụ này mặc định dùng Argon2id và chỉ để bcrypt là tùy chọn phụ.
Tôi có thể xác minh một mật khẩu với hash đã có sẵn không?
Có. Chế độ Verify nhận một chuỗi PHC và một mật khẩu rồi cho biết chúng có khớp không, mà không bao giờ cần bản rõ gốc từng được lưu ở đâu — hữu ích để kiểm tra hash bạn vừa tạo hoặc kiểm toán một hash có sẵn.