Công cụ tạo token ngẫu nhiên
Tạo token ngẫu nhiên an toàn mật mã cho session, đặt lại mật khẩu, CSRF và lời mời. Hex, Base64url, Base32 hoặc chữ và số; mặc định 256 bit.
Tùy chọn, ví dụ sk_live_ hoặc myapp_. Giúp nhận diện khóa dễ hơn và dễ phát hiện khi bị lộ trong mã nguồn.
256 bit entropy · 64 ký tự mỗi giá trị
Được tạo cục bộ bằng crypto.getRandomValues; không gửi hay lưu gì cả. Hãy lưu secret trong biến môi trường hoặc trình quản lý secret, đừng bao giờ để trong mã nguồn.
Tạo token ngẫu nhiên là gì?
Tạo token ngẫu nhiên không thể đoán cho liên kết đặt lại mật khẩu, xác minh email, mã mời, chống CSRF, session ID hoặc bất kỳ bí mật dùng một lần nào. Mặc định là 32 byte ngẫu nhiên (256 bit) hiển thị thành 64 ký tự hex; bạn có thể chuyển sang Base64url an toàn cho URL, Base32, Base64 hoặc chữ và số.
Cách sử dụng Tạo token ngẫu nhiên
- Chọn Định dạng: hex là phổ biến nhất, Base64url ngắn hơn và an toàn trong URL.
- Đặt Số byte ngẫu nhiên (hoặc Độ dài tính bằng ký tự với định dạng chữ và số).
- Chọn Số lượng token cần tạo và bấm Tạo lại để có bộ mới.
- Sao chép các token.
Ví dụ
Format Base64url, 32 random bytes, How many 1
81u4aRrBPjZmdbKks_Gh_FDt4AKsSY4FQllDH0mkThk
256 bit, 43 ký tự. Ngẫu nhiên — token của bạn sẽ khác.
Khi nào nên dùng Tạo token ngẫu nhiên
Dùng các token này ở bất cứ đâu mà việc nắm giữ giá trị đồng nghĩa với quyền truy cập và nó không được phép đoán ra. Với giá trị cần có cấu trúc hoặc thời hạn bên trong (claim, chữ ký), hãy dùng JWT; với ID cơ sở dữ liệu không cần bí mật, UUID đơn giản hơn.
Tạo token ngẫu nhiên hoạt động như thế nào
Công cụ yêu cầu N byte ngẫu nhiên từ CSPRNG của trình duyệt (crypto.getRandomValues) rồi mã hóa: hex dùng hai ký tự cho mỗi byte, Base64url (RFC 4648 §5) dùng A-Z a-z 0-9 - _ không có padding, Base32 dùng A-Z 2-7. Dòng entropy hiển thị số bit ngẫu nhiên (8 × số byte) và độ dài kết quả, đồng thời cảnh báo khi dưới 128 bit.
Các Trường Hợp Sử Dụng Phổ Biến
- Liên kết đặt lại mật khẩu và xác minh email
- Mã định danh session và token CSRF
- Mã mời hoặc mã tải xuống dùng một lần
- Secret webhook và khóa ký dùng chung
Lưu Ý Bảo Mật
Hãy đối xử với token như mật khẩu: đặt thời hạn, vô hiệu hóa sau khi dùng và chỉ lưu mã hash trên máy chủ khi có thể.
Câu Hỏi Thường Gặp
Hex hay Base64url?
Cả hai mang cùng độ ngẫu nhiên với cùng số byte. Base64url ngắn hơn khoảng một phần ba (43 so với 64 ký tự cho 32 byte) và an toàn trong URL; hex dễ đọc và so sánh hơn.
Tôi cần bao nhiêu byte?
16 byte (128 bit) là mức tối thiểu thường dùng cho token bảo mật; 32 byte (256 bit) để lại biên an toàn thoải mái.
Tạo token trong trình duyệt có an toàn không?
Có. crypto.getRandomValues là bộ sinh số an toàn mật mã, và không có gì được gửi tới máy chủ. Với token mà ứng dụng cấp cho người dùng, hãy tạo chúng trên máy chủ bằng cùng loại CSPRNG.