Trình tạo mật khẩu trực tuyến
Tùy chọn nâng cao
Các từ lấy từ danh sách EFF tiếng Anh, nên cụm mật khẩu luôn đọc như tiếng Anh bất kể ngôn ngữ bạn đang dùng.
Danh sách từ: EFF large wordlist của Electronic Frontier Foundation, cấp phép theo CC BY 3.0 US. eff.org/diceXem cách tính
| Thời gian để bẻ khóa |
|---|
Phiên này
Tạo nhiều mật khẩu cùng lúc
Cài đặt đã lưu
Mật khẩu, cụm mật khẩu, PIN và khóa
Các tab phía trên khung kết quả chuyển đổi giữa bốn loại bí mật khác nhau. Cả bốn đều lấy ngẫu nhiên từ cùng một nguồn cục bộ — chỉ bảng ký tự và quy tắc là thay đổi.
Ngẫu nhiên — độ dài từ 4 đến 128 ký tự với bất kỳ tổ hợp chữ hoa, chữ thường, chữ số và ký hiệu nào. Trong mục Tùy chọn nâng cao là những thiết lập mà các trang web thực tế thường bắt buộc: loại bỏ ký tự dễ nhầm (0/O, 1/l/I) cho bất cứ thứ gì bạn phải gõ lại bằng tay, cấm những ký tự cụ thể mà một trang từ chối, yêu cầu số lượng tối thiểu cho từng loại ký tự, cấm lặp ký tự hoặc chuỗi bàn phím như abc và qwe, hoặc quy định hình dạng chính xác bằng một mẫu (A chữ hoa, a chữ thường, # chữ số, ! ký hiệu, C phụ âm, v nguyên âm).
Cụm mật khẩu — vài từ ngẫu nhiên thay vì một chuỗi xáo trộn, theo ý tưởng correct-horse-battery-staple của XKCD 936. Các từ được lấy từ EFF large wordlist, gồm 7.776 mục và là chuẩn diceware, nên mỗi từ cộng thêm 12,9 bit: năm từ tương đương khoảng 65 bit và, không giống xK9#mP2$vL5@nQ8, bạn có thể nhớ đủ lâu để gõ nó trên điện thoại. Chọn dấu phân cách, viết hoa chữ cái đầu mỗi từ, hoặc thêm chữ số và một ký hiệu khi một trang web yêu cầu. Kiểu thứ hai bỏ qua hoàn toàn các từ tiếng Anh và tạo ra các âm tiết dễ đọc (tokrilmufsad) — dễ đọc qua điện thoại hơn và không phụ thuộc vào bố cục bàn phím của bạn.
PIN — từ 3 đến 12 chữ số cho khóa màn hình điện thoại, thẻ SIM, bảng báo động và thẻ ngân hàng. Những mã dễ đoán không bao giờ xuất hiện: 1234, 0000, các chữ số giống hệt nhau và bất cứ thứ gì đọc như năm sinh đều bị loại và tạo lại. Bộ lọc này quan trọng hơn vẻ ngoài của nó — trong các phân tích về dữ liệu PIN bị rò rỉ, hai mươi mã PIN bốn chữ số phổ biến nhất chiếm khoảng một phần tư tổng số.
Khóa — bí mật ngẫu nhiên ở định dạng mà mã nguồn cần: hệ thập lục phân, Base64, hoặc chỉ chữ cái và số. Bạn đặt kích thước theo byte, nên 32 byte cho ra khóa 256-bit (64 ký tự hex, 44 ký tự trong Base64) dùng làm API key, session secret, JWT_SECRET hay SECRET_KEY. Cùng tab này cũng tạo mã dự phòng 2FA theo định dạng quen thuộc từ GitHub (k7fp-2mqx), dựng từ một bảng chữ cái không có ký tự dễ nhầm để chúng vẫn đọc được khi viết ra giấy.
Tại sao công cụ này chỉ hoạt động trong trình duyệt của bạn
Hầu hết các trình tạo mật khẩu đều hoạt động tốt — cho đến khi bạn dừng lại để suy nghĩ về những gì thực sự đang xảy ra. Khi bạn tạo mật khẩu trên máy chủ, máy chủ đó có thể nhìn thấy mật khẩu về mặt lý thuyết. Đối với hầu hết các trang web, điều này có lẽ ổn. Nhưng «có lẽ» không phải là sự chắc chắn bạn muốn khi thiết lập tài khoản ngân hàng hoặc email.
Trình tạo này được xây dựng xung quanh một nguyên tắc: mật khẩu không bao giờ rời khỏi thiết bị của bạn. Tất cả chạy bằng JavaScript trực tiếp trong trình duyệt của bạn. Phần mã liên quan:
const array = new Uint8Array(length);
crypto.getRandomValues(array);
crypto.getRandomValues() lấy entropy từ bộ tạo số ngẫu nhiên của hệ điều hành — cùng nguồn được sử dụng bởi các thư viện mật mã. Đóng tab này và mật khẩu biến mất. Không có nhật ký, không có cơ sở dữ liệu, không có máy chủ.
Vấn đề với «thủ thuật» mật khẩu
Nhiều năm qua, lời khuyên bảo mật nghe như thế này: lấy một từ, viết hoa chữ cái đầu, thêm số ở cuối, thay một chữ cái bằng ký hiệu. Kiểu như P@ssw0rd.
Những kẻ tấn công biết những thủ thuật này. Các cuộc tấn công từ điển không chỉ thử các từ thông thường — chúng thử các từ thông thường với các sửa đổi thông thường. P@ssw0rd không phải là mật khẩu mạnh; đó là mật khẩu yếu trong bộ cánh.
«Mật khẩu giống như đồ lót: đừng để người khác thấy, thay đổi thường xuyên, và không nên chia sẻ với người lạ.»
— Chris Pirillo
Sự thay đổi thực sự đến với các trình quản lý mật khẩu. Khi bạn không cần nhớ mật khẩu — khi nó được lưu an toàn trong Bitwarden, 1Password hoặc KeePass — không có lý do gì để không sử dụng thứ gì đó như xK9#mP2$vL5@nQ8 cho mỗi tài khoản. Tạo, sao chép, lưu trữ. Đó là toàn bộ quy trình làm việc.
Nhu cầu thay đổi mật khẩu thường xuyên là một trong những lý do ban đầu khiến công cụ này được tạo ra. Việc xoay vòng mật khẩu chỉ nên mất 30 giây, không phải gây đau đầu.
Bao lâu là đủ dài?
Độ dài quan trọng hơn độ phức tạp. Mật khẩu 20 ký tự chỉ gồm chữ thường có entropy nhiều hơn mật khẩu 10 ký tự với cả bốn loại ký tự. Cả hai đều quan trọng, nhưng độ dài thắng.
| Mật khẩu | Độ dài | Thời gian bẻ khóa |
|---|---|---|
password123 | 11 ký tự | < 1 giây |
NguyenVanAn1985 | 15 ký tự | 3 giờ |
Abc123!@# | 9 ký tự | 2 ngày |
MyD0g!sF1uffy | 13 ký tự | 5 năm |
Tr$7mK@p9Lq2 | 12 ký tự | 200+ năm |
xK9#mP2$vL5@nQ8 | 15 ký tự | 34.000 năm |
NIST Special Publication 800-63B khuyến nghị tối thiểu 8 ký tự nhưng lưu ý rằng độ dài là yếu tố chính của sức mạnh — các yêu cầu ký tự đặc biệt bắt buộc thường phản tác dụng bằng cách làm cho mật khẩu dễ đoán hơn.
Các loại ký tự làm gì
- Chữ hoa (A–Z) — 26 khả năng cho mỗi vị trí
- Chữ thường (a–z) — thêm 26
- Số (0–9) — 10
- Ký hiệu (!@#$%…) — 32+ tùy thuộc vào bộ ký tự
Với 16 ký tự và cả bốn loại (94 giá trị có thể cho mỗi vị trí): 94¹⁶ ≈ 3,7 × 10³¹ tổ hợp. Một cụm GPU hiện đại bẻ khóa một tỷ mật khẩu mỗi giây sẽ cần thời gian lâu hơn tuổi của vũ trụ.
Dành cho lập trình viên: khóa, bí mật và xuất hàng loạt
Tab Khóa tồn tại vì changeme và secret123 vẫn xuất hiện trong file .env thường xuyên hơn ai cũng muốn thừa nhận. Hãy tạo giá trị đúng định dạng mà thư viện của bạn cần — hex cho bất cứ thứ gì cần khóa thô, Base64 cho token và header, chữ-số khi shell hoặc URL không xử lý được + và / — và đặt kích thước theo byte thay vì ký tự, vì đó là cách độ mạnh của khóa được quy định: 16 byte là khóa 128-bit, 32 byte là 256-bit.
Mọi thứ đều lấy từ crypto.getRandomValues(), CSPRNG của trình duyệt — cùng nhóm nguồn với secrets trong Python hay crypto/rand trong Go, và tuyệt đối không phải Math.random(), vốn đủ dễ đoán để có thể tái tạo lại.
Bên dưới các bảng điều khiển, mục Tạo nhiều mật khẩu cùng lúc tạo ra tới 1.000 giá trị và tải xuống dưới dạng TXT, CSV, JSON, YAML, .env hoặc SQL — dùng để khởi tạo tài khoản thử nghiệm, cấp thông tin đăng nhập ban đầu, hoặc điền một cột dữ liệu mà không cần viết script dùng một lần. Kết quả hàng loạt tuân theo thiết lập của tab ngẫu nhiên (hoặc mẫu bạn đặt), chứ không áp dụng cho tab cụm mật khẩu và PIN.
Hai tiện ích nhỏ hơn: Xóa bộ nhớ tạm 60 giây sau khi sao chép giới hạn thời gian một bí mật nằm trong bộ nhớ tạm hệ thống, và Cài đặt đã lưu giữ một bộ quy tắc có tên trong trình duyệt của bạn, để một chính sách bạn dùng thường xuyên — 20 ký tự, không ký hiệu, không ký tự dễ nhầm — chỉ cách một cú nhấp. Địa chỉ URL của trang cũng mang theo các thiết lập đó, không bao giờ mang giá trị đã tạo, nên một chính sách hoàn toàn an toàn để đánh dấu trang hoặc gửi cho đồng nghiệp.
Lý do ủng hộ trình quản lý mật khẩu
Tạo mật khẩu mạnh là vô ích nếu bạn tái sử dụng chúng hoặc lưu chúng trong matkhau.txt trên máy tính. Báo cáo Điều tra Vi phạm Dữ liệu của Verizon nhất quán tìm thấy rằng 81% vi phạm liên quan đến mật khẩu bị đánh cắp hoặc yếu. Lý do phổ biến nhất khiến mọi người tái sử dụng mật khẩu: quá nhiều tài khoản để theo dõi.
Các trình quản lý mật khẩu giải quyết điều này gọn gàng:
- Bitwarden — mã nguồn mở, cấp miễn phí đáp ứng hầu hết nhu cầu, hoạt động trên tất cả nền tảng
- 1Password — giao diện tinh tế, chia sẻ gia đình/nhóm xuất sắc
- KeePass — hoàn toàn cục bộ, không có đám mây, kiểm soát hoàn toàn
Khi mật khẩu bị rò rỉ
- Thay đổi ngay lập tức trên mỗi tài khoản đã sử dụng mật khẩu đó
- Bật 2FA trên tài khoản bị ảnh hưởng
- Kiểm tra Have I Been Pwned — nhập email của bạn để xem các vi phạm trước đây
- Xem xét các phiên hoạt động và thu hồi bất kỳ thứ gì không quen thuộc
Khuyến nghị theo loại tài khoản
Tài khoản tài chính
- 16+ ký tự, tất cả các loại ký tự
- Mật khẩu duy nhất, không bao giờ tái sử dụng
- 2FA qua ứng dụng xác thực (không phải SMS)
- 14+ ký tự — email của bạn đặt lại mọi mật khẩu khác, khiến nó trở thành viên ngọc quý của bảo mật của bạn
- 2FA bắt buộc
- Kiểm tra các thiết bị đã đăng nhập thường xuyên
Mạng xã hội
- 12+ ký tự
- 2FA qua ứng dụng — 2FA dựa trên SMS dễ bị tấn công hoán đổi SIM
Tài khoản công việc
- Tuân theo chính sách công ty (thường 14+)
- Không bao giờ sử dụng mật khẩu cá nhân trên hệ thống công việc; thay đổi ngay khi rời đi
Những lỗi phổ biến đáng tránh
Lưu trữ mật khẩu dưới dạng văn bản thuần túy (matkhau.txt, ứng dụng ghi chú, bản nháp email) — thay vào đó hãy sử dụng trình quản lý mật khẩu được mã hóa.
Chia sẻ mật khẩu qua chat hoặc email — sử dụng Bitwarden Send hoặc chia sẻ an toàn tương tự nếu bạn phải chia sẻ.
Chỉ tin tưởng vào trình duyệt như trình quản lý mật khẩu duy nhất — trình duyệt đang cải thiện, nhưng trình quản lý chuyên dụng với mật khẩu chính cung cấp mã hóa tốt hơn và hỗ trợ đa nền tảng.
Hướng dẫn Việt Nam
VNCERT của Việt Nam (vncert.vn) và Bộ Thông tin và Truyền thông công bố hướng dẫn an toàn mạng. Các dịch vụ ngân hàng và chính phủ điện tử của Việt Nam (VneID, VssID) ngày càng yêu cầu xác thực mạnh. VNCERT khuyến nghị tránh các mật khẩu dựa trên số chứng minh nhân dân, số điện thoại hoặc ngày sinh — tất cả thường được sử dụng và dễ đoán.
Thống kê bảo mật mật khẩu
- 81% vi phạm kinh doanh liên quan đến mật khẩu bị đánh cắp hoặc yếu (Verizon DBIR)
- 59% mọi người tái sử dụng mật khẩu trên nhiều tài khoản
- 23% mật khẩu phổ biến nhất có thể bị bẻ khóa trong vòng dưới 1 giây
- Người dùng trung bình có 100+ tài khoản trực tuyến yêu cầu mật khẩu
Câu hỏi thường gặp
Trình tạo này có thực sự riêng tư không?
Có. Mở bảng điều khiển nhà phát triển của trình duyệt (F12) trong khi tạo mật khẩu và kiểm tra tab Mạng — bạn sẽ thấy không có yêu cầu nào được gửi. Tất cả chạy cục bộ.Tôi nên thay đổi mật khẩu bao lâu một lần?
Khi có lý do: vi phạm đã biết, nghi ngờ xâm phạm, hoặc sau khi chia sẻ quyền truy cập. NIST không còn khuyến nghị xoay vòng bắt buộc định kỳ vì bản thân nó — các thay đổi thường xuyên bị ép buộc thường dẫn đến mật khẩu yếu hơn, dễ đoán hơn.Tôi có thể sử dụng cùng một mật khẩu cho nhiều tài khoản không?
Không. Một vi phạm sẽ tiết lộ mọi tài khoản chia sẻ mật khẩu đó. Trình quản lý mật khẩu làm cho việc duy trì mật khẩu duy nhất cho hàng trăm tài khoản trở nên dễ dàng.Nên dùng mật khẩu hay cụm mật khẩu?
Dùng mật khẩu ngẫu nhiên cho mọi thứ mà trình quản lý mật khẩu gõ hộ bạn, và dùng cụm mật khẩu cho số ít bí mật bạn phải tự gõ: mật khẩu chính của trình quản lý, mã hóa ổ đĩa, đăng nhập máy tính. Năm từ từ danh sách EFF cho khoảng 65 bit entropy — tương đương một mật khẩu ngẫu nhiên 10 ký tự dùng đủ bốn loại ký tự — và dễ gõ đúng hơn nhiều trên điện thoại hay remote TV.Tôi có thể tạo mã PIN ngẫu nhiên không?
Có, tab PIN tạo từ 3 đến 12 chữ số và từ chối những mã dễ đoán: 1234, 0000, chữ số lặp lại và năm sinh. Sáu chữ số thay vì bốn gần như không tốn thêm công gõ nhưng nhân số lần đoán mà kẻ tấn công cần lên gấp một trăm lần.Tôi có thể dùng công cụ này cho API key và bí mật ứng dụng không?
Đó chính là mục đích của tab Khóa: xuất dưới dạng hệ thập lục phân, Base64 hoặc chữ-số, đặt kích thước theo byte. 32 byte là khóa 256-bit, đúng bằng thứ mà hầu hết thư viện coi là bí mật đủ mạnh choJWT_SECRET, SECRET_KEY hay chữ ký webhook. Cùng tab này cũng tạo mã dự phòng 2FA.