Công cụ tạo khóa bí mật

Tạo khóa bí mật cho JWT HS256/HS512, AES-128/256, APP_KEY của Laravel, secret_key_base của Rails, SECRET_KEY của Django và cookie session với độ ngẫu nhiên an toàn.

Đầu ra

256 bit entropy · 43 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 khóa bí mật là gì?

Các framework và thư viện cần khóa bí mật ngẫu nhiên theo định dạng riêng: chuỗi Base64url 256-bit cho JWT HS256, 32 byte hex cho AES-256, base64: + 32 byte cho APP_KEY của Laravel, 128 ký tự hex cho secret_key_base của Rails, 50 ký tự cho SECRET_KEY của Django. Chọn Mục đích và công cụ sẽ tạo khóa với độ dài và cách mã hóa phù hợp, hoặc bạn tự tùy chỉnh định dạng.

Cách sử dụng Tạo khóa bí mật

  1. Chọn một Mục đích như Secret JWT HS256 hoặc Laravel APP_KEY.
  2. Điều chỉnh Định dạng và Số byte ngẫu nhiên / Độ dài nếu cần (thao tác này chuyển sang Tùy chỉnh).
  3. Bấm Tạo lại đến khi có khóa, rồi sao chép vào biến môi trường của bạn.

Ví dụ

Đầu vào
Purpose: JWT HS256 secret (256 bits, Base64url)
Đầu ra
-IXerdjEBBrFmWvMzQ0izB3-w1aweuEukH9SlJBWmwE

256 bit entropy. Ngẫu nhiên — khóa của bạn sẽ khác.

Khi nào nên dùng Tạo khóa bí mật

Dùng khi thiết lập môi trường mới, xoay vòng khóa bị lộ hoặc cấu hình ký JWT. Với ký bất đối xứng (RS256, ES256), bạn cần một cặp khóa, không phải secret dùng chung. Đừng bao giờ commit khóa lên Git; hãy đặt chúng trong biến môi trường hoặc trình quản lý bí mật.

Tạo khóa bí mật hoạt động như thế nào

Mọi khóa đều lấy từ crypto.getRandomValues. Các mẫu dựa trên byte rút đúng số byte mà thuật toán cần (16 cho AES-128, 32 cho AES-256 và HS256, 64 cho HS512 và Rails) rồi mã hóa thành hex, Base64 hoặc Base64url. Khóa Django gồm 50 ký tự chọn đều từ chữ cái và chữ số (khoảng 298 bit). Dòng entropy hiển thị độ mạnh tính bằng bit và cảnh báo khi dưới 128 bit.

Các Trường Hợp Sử Dụng Phổ Biến

  • Đặt APP_KEY cho bản triển khai Laravel mới
  • Tạo secret ký JWT HS256
  • Tạo khóa AES-256 để mã hóa dữ liệu lưu trữ
  • Xoay vòng secret của Django hoặc Rails sau khi bị lộ

Lưu Ý Bảo Mật

Được tạo cục bộ và không bao giờ gửi đi đâu. Bất kỳ ai có khóa đều có thể giả mạo token hoặc giải mã dữ liệu, nên chỉ lưu nó trong biến môi trường hoặc trình quản lý bí mật.

Câu Hỏi Thường Gặp

Secret JWT HS256 nên dài bao nhiêu?

Ít nhất 256 bit (32 byte), bằng kích thước đầu ra của SHA-256, như RFC 7518 khuyến nghị. HS512 nên dùng 512 bit.

Có giống chạy php artisan key:generate không?

Giống về định dạng: lệnh của Laravel cũng tạo 32 byte ngẫu nhiên, mã hóa Base64 và thêm tiền tố base64:.

Điều gì xảy ra nếu tôi đổi khóa của ứng dụng đang chạy?

Các session hiện có, cookie đã ký, token và mọi thứ được mã hóa bằng khóa cũ sẽ mất hiệu lực hoặc không đọc được. Hãy lên kế hoạch xoay vòng cẩn thận.

Khám phá thêm danh mục