Trình tạo cụm mật khẩu Diceware — Cụm mật khẩu từ ngẫu nhiên
Tạo cụm mật khẩu mạnh, dễ nhớ từ các từ thực ngẫu nhiên bằng phương pháp Diceware — ngẫu nhiên mật mã thực sự, hiển thị trung thực entropy thực tính bằng bit.
🔒 Được xử lý hoàn toàn trong trình duyệt của bạn — không có nội dung nào bạn nhập ở đây được tải lên.
Kết quả
Công cụ này tạo cụm mật khẩu theo phương pháp Diceware: thay vì một chuỗi ký tự ngẫu nhiên dày đặc khó gõ và càng khó nhớ hơn, nó ghép nối nhiều từ thông thường được chọn độc lập một cách ngẫu nhiên. Một cụm mật khẩu như "forest-comet-lantern-guitar-oasis-thistle" mang entropy thực, có thể tính toán được, đồng thời vẫn là thứ mà con người có thể đọc to, gõ trên bàn phím điện thoại hoặc ghi nhớ sau vài lần thử — đó chính là sự đánh đổi mà phương pháp tạo kiểu Diceware được thiết kế hướng tới.
Tính ngẫu nhiên là cốt lõi, vì vậy nó được coi trọng ở đây: mỗi từ được chọn bằng trình tạo số ngẫu nhiên an toàn mật mã crypto.getRandomValues() của trình duyệt, với lấy mẫu loại bỏ đúng chuẩn trong mỗi lần rút. Một giá trị ngẫu nhiên 32 bit thô chỉ được chấp nhận nếu nó nằm trong phạm vi chia hết cho độ dài danh sách từ; các giá trị trong phần dư không đều sẽ bị loại bỏ và rút lại. Bỏ qua bước này và chỉ dùng value % wordlistLength sẽ khiến các từ có chỉ số thấp hơi được ưu tiên hơn các từ có chỉ số cao — một thiên lệch thống kê tinh vi mà một triển khai ngây thơ sẽ âm thầm tạo ra. Trình tạo này không bao giờ đi đường tắt đó.
Sự trung thực về entropy là nửa còn lại của thiết kế. Danh sách từ đi kèm có 1.821 từ tiếng Anh thông dụng, duy nhất, rõ nghĩa — một danh sách lớn, tiêu biểu, nhưng không phải danh sách 7.776 từ cụ thể mà dự án Diceware kinh điển sử dụng, vì vậy công cụ này không bao giờ đưa ra con số 12,9 bit trên mỗi từ nổi tiếng vốn chỉ áp dụng cho đúng danh sách đó. Thay vào đó, entropy trên mỗi từ được tính trực tiếp là log2(độ dài danh sách), cho ra kết quả xấp xỉ 10,8 bit mỗi từ ở đây, và kết quả trên màn hình luôn hiển thị công thức đầy đủ — số từ nhân với bit mỗi từ, cộng với phần đóng góp trung thực của bất kỳ thành phần bổ sung nào — để bạn có thể thấy chính xác tổng số đã được tính ra sao, thay vì tin vào một con số tiếp thị.
Các tùy chọn bổ sung cũng được xử lý với cùng sự trung thực đó. Việc viết hoa mỗi từ là một quy tắc cố định, tất định, được áp dụng giống hệt nhau mỗi lần, vì vậy nó không thêm chút entropy thực nào — kẻ tấn công biết quy tắc sẽ chẳng được lợi gì từ việc không biết chữ cái nào được viết hoa, và công cụ nói rõ điều này. Ngược lại, việc thêm một số ngẫu nhiên hai chữ số là một lần rút ngẫu nhiên thực sự trên 100 giá trị có xác suất bằng nhau, bổ sung thêm khoảng 6,6 bit thực trên tổng số từ. Mọi thứ được tính toán và hiển thị cục bộ trong trình duyệt của bạn, không có máy chủ nào tham gia, vì vậy cụm mật khẩu bạn tạo ra không ai khác ngoài bạn nhìn thấy.