Menu

Tạo mật khẩu

Tạo mật khẩu mạnh, ngẫu nhiên với các nhóm ký tự tùy chỉnh.

Tác giả Nethanel Bar, Co-founder & CEO

Cập nhật lần cuối

Sẵn sàng học code thật sự?

Coddy dạy bạn bằng cách viết code thật ngay trên trình duyệt: bài học tương tác, phản hồi tức thì và AI hỗ trợ khi bạn bị kẹt.

Công cụ tạo mật khẩu là gì?

Công cụ tạo mật khẩu tạo ra những mật khẩu ngẫu nhiên khó đoán hơn rất nhiều so với mật khẩu do con người tự nghĩ. Lập trình viên và người học dùng chúng cho tài khoản thử nghiệm, trang quản trị, thông tin đăng nhập cơ sở dữ liệu, đăng ký dashboard, secret trong CI và để luyện thói quen bảo mật cá nhân.

Ý tưởng cốt lõi là *entropy*: mức độ khó đoán của một mật khẩu. Mật khẩu dài hơn, khó đoán hơn sẽ mạnh hơn rất nhiều, kể cả khi cả hai đều trông ngẫu nhiên với con người. Mỗi tài khoản một mật khẩu riêng, lưu trong một trình quản lý mật khẩu đáng tin cậy, sẽ loại bỏ phần lớn rủi ro đến từ việc dùng lại mật khẩu.

Một công cụ tạo mật khẩu thực thụ phải lấy tính ngẫu nhiên từ nguồn an toàn: window.crypto.getRandomValues trong trình duyệt, secrets trong Python, crypto.randomBytes trong Node.js. Bất cứ thứ gì dựa trên Math.random() hay bộ sinh số ngẫu nhiên đơn giản lấy hạt giống từ thời gian đều đủ dễ đoán để bị tấn công.

Bạn sẽ học được gì khi tạo mật khẩu

  • Độ dài thường quan trọng hơn các mẹo thay ký tự như @ thay cho a: một mật khẩu 20 ký tự toàn chữ thường mạnh hơn mật khẩu 10 ký tự có ký hiệu.
  • Tính ngẫu nhiên phải đến từ nguồn an toàn về mật mã như window.crypto, không phải từ Math.random().
  • Mỗi tài khoản một mật khẩu riêng giúp hạn chế thiệt hại nếu một trang web hay cơ sở dữ liệu bị xâm phạm.
  • Một *passphrase* ngẫu nhiên dài (từ bốn đến sáu từ không liên quan) có thể mạnh ngang một chuỗi ngẫu nhiên 20 ký tự mà lại dễ gõ hoặc đọc hơn.

Cách tạo mật khẩu mạnh từng bước

  1. Chọn độ dài

    Nhắm ít nhất 16 ký tự cho tài khoản quan trọng, từ 20 ký tự trở lên cho thông tin đăng nhập quản trị hoặc root. Tăng độ dài hiệu quả hơn mọi tinh chỉnh khác.

  2. Chọn loại ký tự

    Bật chữ thường, chữ hoa, chữ số và ký hiệu để có kết quả mạnh nhất. Nếu bạn sẽ đọc mật khẩu bằng giọng nói hoặc sao chép qua nhiều hệ thống, bạn có thể tắt ký hiệu.

  3. Loại bỏ ký tự dễ nhầm (tùy chọn)

    Bật tùy chọn bỏ qua O / 0 và l / 1 / I nếu mật khẩu có thể phải đọc to hoặc gõ tay.

  4. Tạo mật khẩu và xem thanh đo độ mạnh

    Thanh đo ước tính thời gian cần để dò ra mật khẩu bằng vét cạn (brute force). Mức nào thuộc nhóm mạnh nhất cũng ổn cho tài khoản cá nhân.

  5. Lưu vào trình quản lý mật khẩu

    Sao chép mật khẩu vào một trình quản lý mật khẩu đáng tin cậy, đừng bao giờ dán vào chat, email hay giấy ghi chú. Không dùng lại nó cho tài khoản khác.

Bảng tra nhanh độ mạnh mật khẩu

Thời gian vét cạn ước tính với giả định 10 tỷ lần đoán mỗi giây, tương đương công cụ bẻ khóa ngoại tuyến hiện đại. Hãy dùng bảng này làm tham khảo gần đúng khi chọn độ dài. Hướng dẫn chính thức: NIST SP 800-63B và OWASP Authentication Cheat Sheet.

Độ dàiBộ ký tựĐộ mạnh ước tính
8chữ thường + chữ số (36 ký tự)Bị bẻ trong vài giây
10chữ thường + chữ hoa + chữ số (62)Bị bẻ trong vài giờ
12chữ thường + chữ hoa + chữ số + ký hiệu (94)Vài ngày đến vài tuần
16chữ thường + chữ hoa + chữ số + ký hiệuHàng thế kỷ
20chữ thường + chữ hoa + chữ số + ký hiệuGần như không thể bẻ với công nghệ hiện nay
4 từPassphrase từ các từ ngẫu nhiên (correct horse battery staple)Hàng thế kỷ, lại dễ nhớ hơn

Ví dụ mật khẩu để thử

Mặc định mạnh cho tài khoản thông thường

Cài đặt

Độ dài: 20 · Chữ thường: bật · Chữ hoa: bật · Chữ số: bật · Ký hiệu: bật

Kết quả mẫu

B7$kP2wM!hG9eV4rT&xQ

Mức mặc định thực tế cho dashboard, ứng dụng web và hầu hết tài khoản cá nhân. 20 ký tự với cả bốn loại ký tự hiện được xem là gần như không thể bẻ khóa.

So sánh chỉ theo độ dài

8 ký tự (yếu)

f7Bk2pQz

24 ký tự (mạnh)

f7Bk2pQzM!eV9rT&hG3wXn$L

Mật khẩu ngắn hơn dùng cùng loại ký tự nhưng yếu hơn rất nhiều bậc độ lớn. Độ dài gần như luôn thắng.

Passphrase dễ đọc

Passphrase

lantern-vivid-comet-nimbus-quartz

Năm từ ngẫu nhiên không liên quan nhau mạnh xấp xỉ một mật khẩu ngẫu nhiên 16 ký tự, nhưng dễ gõ, dễ đọc và dễ nhớ hơn nhiều.

Lỗi thường gặp với mật khẩu

  • Dùng lại cùng một mật khẩu đã tạo cho nhiều tài khoản: một trang bị lộ là kéo theo tất cả.
  • Chọn mật khẩu ngắn vì nó có ký hiệu, rồi cho rằng chỉ riêng ký hiệu đã đủ mạnh. Độ dài mới là đòn bẩy lớn hơn.
  • Lưu thông tin đăng nhập production trong mã nguồn, ảnh chụp màn hình, tin nhắn chat hay ghi chú bài học: hãy dùng biến môi trường và trình quản lý secret.
  • Tạo mật khẩu bằng Math.random() hoặc bộ sinh số ngẫu nhiên đơn giản dựa trên thời gian trong code của bạn. Luôn dùng API mật mã của nền tảng.
  • Ghi mật khẩu ra giấy ghi chú thay vì dùng trình quản lý mật khẩu. Tờ giấy ghi chú chính là mắt xích yếu nhất.

Câu hỏi thường gặp về tạo mật khẩu

Làm sao tạo mật khẩu mạnh?

Dùng công cụ tạo mật khẩu và chọn độ dài ít nhất 16 ký tự với cả bốn loại ký tự (chữ thường, chữ hoa, chữ số, ký hiệu). Lưu kết quả thẳng vào trình quản lý mật khẩu, đừng cố nhớ hay gõ tay.

Điều gì làm nên một mật khẩu mạnh?

Độ dài, tính ngẫu nhiên và tính duy nhất. Một mật khẩu dài, ngẫu nhiên, tạo từ bộ sinh số an toàn và chỉ dùng cho đúng một tài khoản là tiêu chuẩn vàng.

Có nên dùng công cụ tạo mật khẩu cho mọi tài khoản không?

Có. Mật khẩu được tạo tự động, riêng cho từng tài khoản và lưu trong trình quản lý mật khẩu đáng tin cậy là cách phòng thủ đơn giản và mạnh nhất trước tấn công credential stuffing.

Mật khẩu mạnh có bắt buộc phải có ký hiệu không?
Ký hiệu có giúp ích, nhưng độ dài và tính ngẫu nhiên quan trọng hơn. Một passphrase ngẫu nhiên dài (tower-citrus-bronze-quay-pear) có thể mạnh ngang một mật khẩu ngắn hơn đầy ký hiệu mà lại dễ dùng hơn.
Công cụ tạo mật khẩu này có an toàn không?
Có. Công cụ của Coddy chạy hoàn toàn trên trình duyệt của bạn bằng window.crypto.getRandomValues. Mật khẩu được tạo ngay trên máy và không bao giờ được gửi lên máy chủ.
Có thể dùng mật khẩu đã tạo trong code của mình không?

Hãy dùng biến môi trường, trình quản lý secret hoặc kho lưu trữ được mã hóa. Đừng hardcode thông tin đăng nhập thật trong tệp mã nguồn, kể cả trong repository riêng tư.

Tìm hiểu thêm

Công cụ lập trình khác

Hình minh họa các ngôn ngữ lập trình của Coddy

Học lập trình cùng Coddy

Bắt đầu