Tạo khóa ngẫu nhiên 🔒 Chạy ngay trong trình duyệt — không tải lên bất cứ thứ gì.

Tạo khóa ngẫu nhiên an toàn mật mã ở dạng hex, base64 hoặc base64url.

Khóa ngẫu nhiên


Kiểu khóa API

Tạo ra một secret kiểu Stripe: tiền tố, dấu gạch dưới, rồi đến 192 bit dữ liệu ngẫu nhiên dạng base64url. Hữu ích để giả lập hoặc khởi tạo khóa API và bearer token.

Về công cụ này

Khóa mã hóa, secret của API và bearer token đều cần cùng một thứ ở gốc rễ: một chuỗi byte mà không ai có thể đoán được. `Math.random()` không được thiết kế cho việc này — đó là một PRNG nhanh, có thể đoán trước, dùng cho hoạt ảnh và xáo trộn, không phải cho bảo mật. Công cụ này thay vào đó gọi `crypto.getRandomValues()`, bộ tạo số ngẫu nhiên an toàn về mặt mật mã của Web Crypto API, nên các byte bạn nhận được phù hợp làm khóa thực sự: khóa AES, secret HMAC, token phiên, hoặc bất cứ thứ gì cần chống lại việc bị đoán.

Chọn độ dài bit — 128 và 256 là kích thước khóa AES phổ biến, 512 và 1024 phù hợp cho secret HMAC lớn hơn hoặc token entropy cao — sau đó chọn mã hóa. Hex phổ biến nhất (hai ký tự mỗi byte, dễ kiểm tra bằng mắt), Base64 nhỏ gọn và được hỗ trợ rộng rãi, còn Base64URL thay thế các ký tự `+`, `/` và `=` để kết quả có thể dùng an toàn trong URL, tên tệp hoặc JWT mà không cần escape. Phần khóa API riêng bên dưới tạo ra một secret kiểu Stripe — một tiền tố ngắn, dấu gạch dưới, rồi một chuỗi Base64URL ngẫu nhiên — định dạng được vô số API SaaS sử dụng cho bearer token của họ.

Mọi thứ diễn ra ngay trong trình duyệt của bạn: không có khóa hay token nào được tạo ở đây bị gửi đi bất cứ đâu. Điều này cũng có nghĩa là không có gì được ghi lại hay khôi phục được nếu bạn rời trang, vì vậy hãy sao chép khóa của bạn trước khi rời đi.

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

Tôi cần bao nhiêu bit cho một khóa AES?

AES hỗ trợ khóa 128, 192 hoặc 256-bit. AES-256 (sử dụng đầu ra hex hoặc base64 256-bit của công cụ này) là lựa chọn hiện đại phổ biến nhất và được coi là an toàn vượt xa bất kỳ tương lai nào có thể dự đoán, kể cả trước các cuộc tấn công điện toán lượng tử lý thuyết chỉ làm giảm khoảng một nửa sức mạnh hiệu quả của nó.

base64url có giống với base64 thông thường không?

Không, chúng gần giống nhưng không giống hệt nhau: base64url thay thế các ký tự `+` và `/` bằng `-` và `_`, và thường lược bỏ phần đệm `=` ở cuối, vì vậy chuỗi kết quả an toàn để sử dụng trực tiếp trong URL hoặc tên tệp mà không cần escape — nếu không, các ký tự đặc biệt của base64 thông thường sẽ cần mã hóa phần trăm trong URL.