Trình tạo mật khẩu
Một mật khẩu ngẫu nhiên được tạo trong trình duyệt của bạn và không bao giờ được gửi đi đâu, kèm entropy tính bằng bit thay vì ước lượng cảm tính.
Chạy hoàn toàn trong trình duyệt của bạn. Không có gì được tải lên, ghi log hay lưu trữ.
- Entropy, tính bằng bit
- —
- Số ký tự để chọn
- —
- Số mật khẩu có thể có
- —
- Bảng ký tự được dùng
- —
Một mật khẩu ngẫu nhiên, do chính trình duyệt của bạn tạo ra và không bao giờ được gửi đi đâu. Độ mạnh được biểu thị bằng entropy tính theo bit — một phép đo chứ không phải một ý kiến — và trang này giải thích con số đó có nghĩa là gì.
Cách hoạt động
Mỗi ký tự được rút độc lập và đồng đều từ bảng ký tự bạn đã chọn, bằng bộ tạo số ngẫu nhiên mật mã của trình duyệt. Không phần nào của mật khẩu được suy ra từ thời gian, từ máy của bạn hay từ bất cứ thứ gì kẻ tấn công có thể đoán được.
Entropy bằng độ dài × log2(kích thước bảng ký tự). Đó là một định nghĩa, không phải ước lượng: đó là logarit cơ số hai của số mật khẩu có thể sinh ra từ các lựa chọn của bạn. Mỗi bit thêm vào làm con số đó tăng gấp đôi.
Điều này chỉ đúng với mật khẩu được rút ngẫu nhiên — thứ trang này tạo ra, và là điều một người tự chọn mật khẩu không làm. Một mật khẩu bạn tự nghĩ ra có entropy thấp hơn nhiều so với độ dài của nó gợi ý, vì cách con người nghĩ ra mật khẩu là có thể đoán trước.
Câu hỏi thường gặp
Mật khẩu có được gửi đến máy chủ của các bạn không?
Không, và thiết kế còn đi xa hơn một lời hứa. Mã phía máy chủ của trang này không thể tạo mật khẩu, và đó là chủ ý: với công cụ này, nó chỉ tính phần số học — bảng ký tự, kích thước của nó, entropy — và không tạo mật khẩu nào. Nơi duy nhất một mật khẩu ra đời là trình duyệt sẽ dùng nó.
Sao không có thước đo độ mạnh?
Vì nó sẽ là bịa đặt. Một mật khẩu trụ được bao lâu phụ thuộc vào phần cứng của kẻ tấn công, ngân sách của họ, thuật toán hash mà trang web đã chọn và lượng dữ liệu bị rò rỉ từ cơ sở dữ liệu của trang đó. Trang này không biết điều nào trong số đó, nên câu “mất 3 triệu năm để bẻ khóa” sẽ là một con số không có gì đứng sau. Entropy tính bằng bit là điều có thể nói một cách trung thực.
Vậy tôi cần bao nhiêu bit?
Nhiều hơn mức bạn nhớ được — đó mới là câu trả lời thật: hãy dùng trình quản lý mật khẩu và độ dài mà trang này đề xuất. Để hình dung, mỗi bit làm số khả năng tăng gấp đôi, nên 60 bit khó hơn 40 bit một triệu lần. Bao nhiêu là thực sự đủ phụ thuộc vào thứ mà mật khẩu bảo vệ và cách trang web lưu trữ nó, và cả hai điều đó đều không nhìn thấy được từ đây.
Sao con số giảm khi loại bỏ các ký tự dễ nhầm?
Vì đó là một sự đánh đổi thật chứ không phải một cải tiến miễn phí. Bỏ Il1O0oB8S5Z2 làm mật khẩu dễ đọc hơn trên màn hình và thu nhỏ bảng ký tự dùng để rút nó, nên entropy giảm. Con số thay đổi khi bạn đánh dấu ô, và đó chính là lý do nó được hiển thị.
Tính ngẫu nhiên có đủ tốt không?
Công cụ dùng crypto.getRandomValues, bộ tạo số ngẫu nhiên mật mã của trình duyệt, chứ không dùng Math.random — hàm không được làm cho việc này và có thể đoán được từ chính đầu ra của nó. Nếu trình duyệt của bạn không có bộ tạo đó, công cụ sẽ nói rõ và từ chối thay vì chuyển sang thứ yếu hơn.
Cần biết
- Ở đây không có gì được lưu, ghi log hay gửi đi. Không có liên kết chia sẻ, vì mật khẩu trong một URL là mật khẩu nằm trong lịch sử duyệt web và trong bất cứ nơi nào liên kết được dán vào.
- Bảng ký tự được hiển thị cạnh các con số, để bạn thấy chính xác những ký tự nào có sẵn thay vì phải tin vào con số đếm.
- Ký hiệu là các dấu câu ASCII, trừ dấu cách, vốn bị quá nhiều biểu mẫu xóa đi. Không có gì khác bị lặng lẽ loại bỏ, vì một bảng ký tự thiếu ký tự sẽ làm mật khẩu yếu hơn mức mà con số bên cạnh khẳng định.