Tạo mật khẩu mạnh

Tạo mật khẩu mạnh, thực sự ngẫu nhiên với độ dài và loại ký tự bạn cần. Mật khẩu được tạo trên thiết bị của bạn và không bao giờ bị gửi đi.

Tùy chọn mật khẩu

16
Bao gồm
Tạo trên thiết bị của bạn bằng crypto.getRandomValues. Không có gì được gửi đi hay lưu lại.

Mật khẩu của bạn

—
Mạnh —
Tập ký tự
—
Thời gian để đoán (ngoại tuyến, 10¹⁰/giây)
—
Thêm mật khẩu

    Cách dùng công cụ tạo mật khẩu

    Công cụ tạo mật khẩu này tạo ngay một mật khẩu ngẫu nhiên mạnh khi trang vừa mở, và tạo mật khẩu mới mỗi khi bạn thay đổi một tùy chọn.

    1. Chọn độ dài bằng thanh trượt hoặc một mức có sẵn. 16 ký tự là lựa chọn mặc định chắc chắn cho hầu hết tài khoản.
    2. Chọn loại ký tự cần bao gồm: chữ hoa, chữ thường, chữ số và ký hiệu. Mật khẩu luôn chứa ít nhất một ký tự của mỗi loại bạn chọn, nên đáp ứng được các trang yêu cầu "ít nhất một chữ số và một ký hiệu".
    3. Đánh dấu Loại ký tự dễ nhầm nếu bạn có thể phải đọc hoặc gõ mật khẩu bằng tay.
    4. Bấm Sao chép rồi dán thẳng vào biểu mẫu đăng ký hoặc trình quản lý mật khẩu. Dùng Tạo lại để có mật khẩu mới, hoặc Tạo 5 mật khẩu để chọn trong một danh sách ngắn.

    Mật khẩu được tạo ra như thế nào

    Mỗi ký tự được chọn bằng crypto.getRandomValues, bộ sinh số ngẫu nhiên an toàn về mặt mật mã có sẵn trong trình duyệt. Nó khác với Math.random, vốn dùng cho trò chơi thì được nhưng đủ dễ đoán để không bao giờ nên dùng cho mật khẩu.

    Chuyển một số ngẫu nhiên thành ký tự một cách công bằng cần cẩn thận một chút. Một cách làm tắt phổ biến là random % 87, nhưng vì 232 không chia hết cho 87, vài ký tự đầu danh sách sẽ xuất hiện thường hơn một chút. Công cụ này dùng phương pháp lấy mẫu loại bỏ (rejection sampling): bất kỳ giá trị ngẫu nhiên nào rơi vào khoảng trên cùng chưa đầy đủ sẽ bị bỏ đi và rút một giá trị mới, nhờ đó mọi ký tự có cơ hội như nhau.

    Để bảo đảm mỗi loại đã chọn đều xuất hiện, công cụ rút trước một ký tự từ mỗi loại, điền các vị trí còn lại từ toàn bộ tập ký tự, rồi xáo trộn kết quả bằng thuật toán Fisher–Yates để các ký tự bắt buộc không nằm ở vị trí dễ đoán.

    Thang đo độ mạnh có ý nghĩa gì

    Độ mạnh được đo bằng bit entropy, cho biết công cụ có thể tạo ra bao nhiêu mật khẩu khác nhau với các tùy chọn của bạn.

    Entropy (bit) = độ dài × log₂(số ký tự trong tập)

    Ví dụ: 16 ký tự lấy từ cả bốn loại (87 ký tự) cho 16 × log₂(87) ≈ 16 × 6,44 ≈ 103 bit. Mỗi bit thêm vào làm công sức của kẻ tấn công tăng gấp đôi.

    Tùy chọnTập ký tựEntropyMức độ
    8 ký tự, chỉ chữ thường26≈ 38 bitRất yếu
    8 ký tự, tất cả các loại87≈ 52 bitYếu
    12 ký tự, tất cả các loại87≈ 77 bitTrung bình
    16 ký tự, tất cả các loại87≈ 103 bitRất mạnh
    20 ký tự, chữ cái và chữ số62≈ 119 bitRất mạnh

    Con số "thời gian để đoán" giả định kẻ tấn công đã đánh cắp được cơ sở dữ liệu mật khẩu và có thể thử mười tỷ lần mỗi giây khi ngoại tuyến, trung bình tìm ra mật khẩu sau khi dò một nửa số khả năng. Các cuộc tấn công thực tế khác nhau rất nhiều tùy cách trang web lưu mật khẩu, vì vậy hãy xem đây là con số để so sánh chứ không phải lời bảo đảm. Phép tính chỉ áp dụng cho mật khẩu tạo ngẫu nhiên; mật khẩu bạn tự nghĩ ra thường yếu hơn nhiều so với độ dài của nó.

    Mẹo dùng mật khẩu mạnh

    Trang này không lưu, ghi lại hay gửi đi các mật khẩu nó tạo ra. Khi bạn đóng hoặc tải lại trang, chúng sẽ biến mất.

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

    Công cụ tạo mật khẩu này có an toàn không?

    Có. Mật khẩu được tạo trong trình duyệt bằng Web Crypto API (crypto.getRandomValues), cùng nguồn ngẫu nhiên an toàn mà trình duyệt dùng để mã hóa. Không có gì được gửi lên máy chủ, ghi lại hay lưu trữ.

    Mật khẩu nên dài bao nhiêu?

    Với tài khoản được bảo vệ bằng trình quản lý mật khẩu, 16 ký tự trở lên với nhiều loại ký tự là mức mặc định tốt. Với mật khẩu bạn phải gõ thường xuyên, độ dài quan trọng hơn ký hiệu: mật khẩu dài khó đoán hơn mật khẩu ngắn mà phức tạp.

    Entropy tính bằng bit nghĩa là gì?

    Entropy đo số lần đoán có thể cần để tìm ra một mật khẩu ngẫu nhiên. Mỗi bit thêm vào làm số khả năng tăng gấp đôi. Entropy được tính bằng độ dài × log2(số ký tự có thể dùng), nên 16 ký tự từ 87 ký hiệu cho khoảng 103 bit.

    Vì sao nên loại ký tự dễ nhầm?

    Các ký tự như I, l, 1, O và 0 dễ bị nhầm khi bạn đọc to mật khẩu hoặc gõ lại từ giấy. Loại chúng đi làm tập ký tự nhỏ hơn một chút, nên công cụ hiển thị entropy thấp hơn chút ít, nhưng chênh lệch không đáng kể.

    Có nên dùng cùng một mật khẩu mạnh cho mọi nơi?

    Không. Nếu một trang web bị rò rỉ dữ liệu, kẻ tấn công sẽ thử cùng email và mật khẩu đó trên các trang khác. Hãy dùng mật khẩu khác nhau cho mỗi tài khoản và lưu chúng trong trình quản lý mật khẩu.