Bỏ qua đến nội dung
LeedyBox
Ủng hộ

Tạo mật khẩu & UUID

Tạo mật khẩu ngẫu nhiên và UUID (v4 và v7) ngay trên trình duyệt bằng Web Crypto API, và xem phiên bản cùng dấu thời gian của một UUID.

Tạo mật khẩu

Ký tự
Entropy ước tính: – –

Entropy = độ dài × log2(số ký tự có thể dùng). Ước tính này chỉ áp dụng cho mật khẩu được tạo ngẫu nhiên, như các mật khẩu bên dưới.

Mật khẩu đã tạo

    Tạo UUID

    Kiểm tra UUID

    Lưu ý

    • Mật khẩu và UUID được tạo trên trình duyệt của bạn bằng bộ sinh số ngẫu nhiên của Web Crypto. Chúng không được gửi tới hay lưu bởi LeedyBox, nên LeedyBox không thể khôi phục chúng. Hãy lưu mật khẩu bạn muốn giữ trong trình quản lý mật khẩu.
    • Hãy dùng mật khẩu khác nhau cho mỗi tài khoản và bật xác thực hai yếu tố nếu có.
    • Nhãn độ mạnh chỉ là ước tính. Nhãn này không tính đến cách một dịch vụ lưu mật khẩu hay việc mật khẩu đã xuất hiện trong một vụ rò rỉ dữ liệu hay chưa.
    • UUID v7 chứa thời điểm nó được tạo, nên bất kỳ ai nhìn thấy nó đều có thể biết nó được tạo khi nào. Hãy dùng v4 khi điều này quan trọng.
    • UUID là định danh. Không dùng chúng làm mật khẩu hoặc token bí mật.

    Cách sử dụng

    1. Đặt độ dài (từ 4 đến 128, mặc định là 16) bằng ô số hoặc thanh trượt, và nhập số mật khẩu bạn muốn vào ô "Số mật khẩu (1–50)" (mặc định là 5). Mỗi khi bạn thay đổi một tùy chọn, một danh sách mới sẽ được tạo; nếu một giá trị nằm ngoài phạm vi cho phép hoặc không thể dùng các thiết lập ký tự hiện tại, một thông báo sẽ cho biết bạn cần thay đổi gì thay vì tạo danh sách.
    2. Trong "Ký tự", chọn các nhóm ký tự sẽ dùng và, nếu cần, sửa "Bộ ký hiệu". Bật "Loại trừ ký tự dễ nhầm (I l 1 O 0 o)" nếu mật khẩu sẽ được đọc to lên hoặc nhập lại từ giấy.
    3. Xem entropy ước tính và nhãn độ mạnh, rồi nhấn "Sao chép" bên cạnh một mật khẩu, hoặc "Sao chép tất cả" để sao chép cả danh sách, mỗi dòng một mật khẩu. "Tạo lại" tạo một danh sách mới với cùng thiết lập.
    4. Để tạo định danh, hãy chuyển đến phần "Tạo UUID", chọn v4 hoặc v7 trong "Phiên bản", nhập số UUID (từ 1 đến 100, mặc định là 5), bật "Chữ hoa", "Không có dấu gạch nối" hoặc cả hai nếu hệ thống của bạn cần dạng đó, rồi nhấn nút "Tạo UUID". Khi bạn đổi phiên bản hoặc một trong hai ô đánh dấu, công cụ tạo một danh sách mới gồm các UUID khác, chứ không định dạng lại các UUID hiện có. Nút "Sao chép tất cả" bên cạnh nút "Tạo UUID" sao chép danh sách, mỗi dòng một UUID.
    5. Để kiểm tra một UUID có sẵn, hãy dán nó vào ô "Dán một UUID" trong phần "Kiểm tra UUID"; kết quả được cập nhật ngay khi bạn gõ. UUID được chấp nhận dù có hay không có dấu gạch nối, viết hoa hay viết thường, nằm trong dấu ngoặc nhọn hay có tiền tố urn:uuid:. Kết quả cho biết UUID có hợp lệ không và hiển thị dạng chuẩn hóa (chữ thường, có dấu gạch nối), biến thể, phiên bản và, nếu UUID có lưu, dấu thời gian của nó; với nil UUID và max UUID, kết quả hiển thị loại thay cho biến thể và phiên bản.

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

    Mật khẩu ngẫu nhiên đến mức nào, và sao chép chúng có an toàn không?

    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 của bạn, kết hợp phương pháp lấy mẫu loại bỏ (rejection sampling) để tránh độ lệch mà phép chia lấy dư đơn giản gây ra; sau đó các ký tự được xáo trộn. Danh sách chỉ tồn tại trong trang đang mở và bị thay thế khi bạn tải lại trang, nhấn "Tạo lại" hoặc thay đổi một tùy chọn. Mật khẩu đã sao chép vẫn nằm trong bộ nhớ tạm cho đến khi bị nội dung khác thay thế, và tính năng lịch sử bộ nhớ tạm hoặc đồng bộ có thể giữ một bản sao hoặc chuyển nó sang các thiết bị khác của bạn, vì vậy sau khi dán mật khẩu vào trình quản lý mật khẩu, hãy sao chép một nội dung khác và xóa mục đó khỏi mọi lịch sử bộ nhớ tạm.

    Yếu, Trung bình, Mạnh và Rất mạnh nghĩa là gì, và mật khẩu nên dài bao nhiêu?

    Đó là các mức của entropy ước tính: dưới 40 bit là Yếu, từ 40 đến dưới 60 là Trung bình, từ 60 đến dưới 80 là Mạnh, và từ 80 bit trở lên là Rất mạnh. Mỗi ký tự đóng góp log2 của số ký tự có thể dùng, khoảng 6,4 bit với 85 ký tự mặc định (cả bốn nhóm cùng bộ ký hiệu mặc định), nên độ dài mặc định 16 cho khoảng 102,6 bit, tức là Rất mạnh. Với mật khẩu ngẫu nhiên được lưu trong trình quản lý mật khẩu, một độ dài nằm trong mức Rất mạnh là mục tiêu hợp lý nếu trang web chấp nhận. Nếu một trang web chỉ cho phép chữ cái và chữ số, hãy bù cho phần ký hiệu bị thiếu bằng độ dài: 20 ký tự từ 62 ký tự đó cho khoảng 119 bit.

    Vì sao độ mạnh thực tế có thể thấp hơn ước tính?

    Khi bật "Có ít nhất một ký tự từ mỗi nhóm đã chọn", các mật khẩu thiếu một nhóm nào đó sẽ không được tạo, và khi mật khẩu có nhiều ký tự hơn số nhóm đã chọn, không phải ký tự nào trong phần còn lại cũng có khả năng xuất hiện như nhau. Vì vậy, entropy thực tế thấp hơn con số mà công thức độ dài × log2(số ký tự có thể dùng) gợi ra. Chênh lệch này đáng kể với mật khẩu ngắn nhưng nhỏ với mật khẩu dài: 4 ký tự từ bốn nhóm mặc định hiển thị khoảng 25,6 bit, trong khi con số chính xác là khoảng 21,8 bit; với độ dài mặc định 16 ký tự, khoảng chênh lệch nhỏ hơn nửa bit. Khi tắt tùy chọn đó, mỗi ký tự được chọn độc lập từ toàn bộ các ký tự có thể dùng, và ước tính khớp với cách mật khẩu được tạo.

    Một trang web từ chối một số ký hiệu. Tôi nên làm gì?

    Xóa các ký hiệu mà trang web không chấp nhận khỏi ô "Bộ ký hiệu", hoặc chỉ nhập những ký hiệu được cho phép; danh sách được tạo lại ngay khi bạn gõ. Dấu cách bị bỏ qua, và ký tự nhập hai lần chỉ được tính một lần. Nếu trang web yêu cầu phải có ký hiệu, hãy giữ bật "Có ít nhất một ký tự từ mỗi nhóm đã chọn". Nếu trang web không chấp nhận ký hiệu nào, hãy bỏ chọn ô "Ký hiệu" và tăng độ dài để bù cho số ký tự có thể dùng ít hơn.

    Tôi nên dùng UUID v4 hay v7?

    Dùng v4 khi thứ tự không quan trọng hoặc khi không nên để người khác đọc được thời điểm tạo từ ID. UUID v7 bắt đầu bằng một Unix timestamp 48 bit tính bằng mili giây, và ngoài các bit phiên bản và biến thể, 74 bit còn lại là ngẫu nhiên, dù một số trình tạo dùng một phần trong đó cho bộ đếm hoặc phần thời gian chi tiết hơn. Nhờ vậy, UUID v7 được sắp xếp gần đúng theo thời điểm tạo, và khi dùng làm khóa cơ sở dữ liệu, điều này thường giúp các mục mới nằm gần nhau trong chỉ mục. Trên trang này, UUID v7 đầu tiên trong mỗi mili giây có 73 bit ngẫu nhiên, còn bit cao nhất trong 74 bit được để là 0. Khi có thêm UUID v7 được tạo trong cùng mili giây đó, hoặc đồng hồ thiết bị bị lùi lại, giá trị trước đó được tăng thêm một lượng ngẫu nhiên thay vì được tạo ngẫu nhiên lại, nên các UUID vẫn theo đúng thứ tự.

    Hai UUID được tạo có thể trùng nhau không?

    Về lý thuyết là có, nhưng trên thực tế khả năng này không đáng kể, miễn là bộ sinh số ngẫu nhiên của trình duyệt hoạt động đúng như thiết kế. UUID v4 có 122 bit ngẫu nhiên, nên cần tạo khoảng 2,7 × 10^18 UUID thì mới có 50% khả năng có hai UUID trùng nhau. Mỗi UUID v7 tạo trên trang này đều lớn hơn UUID trước đó, nên chúng không lặp lại khi trang còn mở, và một UUID v7 tạo ở nơi khác chỉ có thể trùng với một trong số đó nếu có cùng mili giây và cùng các bit ngẫu nhiên.

    Vì sao phần kiểm tra UUID hiển thị dấu thời gian cho một số UUID nhưng không cho các UUID khác?

    Công cụ chỉ đọc thời gian từ phiên bản 1, 6 và 7 thuộc biến thể RFC 9562, là những phiên bản lưu thời gian ở một vị trí xác định: phiên bản 1 và 6 đếm các khoảng 100 nano giây kể từ ngày 15 tháng 10 năm 1582, còn phiên bản 7 đếm mili giây kể từ 1970-01-01 UTC. Thời gian được hiển thị theo UTC, chính xác đến mili giây. Thời gian này lấy từ đồng hồ của thiết bị đã tạo UUID, và một số trình tạo dịch chuyển hoặc làm tròn nó, nên hãy coi đó là thời điểm tạo gần đúng. Phiên bản 2 thay một phần dấu thời gian bằng dữ liệu khác, phiên bản 8 có bố cục do bên tạo ra nó tự định nghĩa, còn phiên bản 3, 4 và 5 không chứa thời gian.