เกี่ยวกับตัวสร้างนี้
ค่าที่ตั้งไว้ล่วงหน้านี้สร้างค่าความปลอดภัยสูงที่ปลอดภัยสำหรับ URL สำหรับการลงนาม HMAC JWT เป็นความลับของนักพัฒนา ไม่ใช่รหัสผ่านผู้ใช้ และไม่เคยออกจากเบราว์เซอร์นี้
ค่าที่ตั้งไว้ล่วงหน้านี้เริ่มต้นด้วยโหมด url-safe และสร้างผลลัพธ์อิสระ 10 รายการในแต่ละครั้ง ทุกการตั้งค่าที่มองเห็นยังคงปรับได้ และค่าที่สร้างขึ้นจะไม่ถูกส่งไปยัง PwdGen
เมื่อใดควรใช้
- สร้างข้อมูลประจำตัวใหม่สำหรับกรณีการใช้งานนี้
- แทนที่รหัสผ่านที่ใช้ซ้ำหรืออ่อนแอ
- สร้างค่าต่างๆ ในเครื่องก่อนการจัดเก็บอย่างปลอดภัย
ขนาดตัวอักษร เอนโทรปี และสมมติฐานการโจมตีแบบเดารหัสผ่าน
เพดานเอนโทรปีทางทฤษฎีคำนวณได้จาก H = L × log2(A) โดยที่ L คือความยาวที่สร้าง และ A คือจำนวนอักขระที่อนุญาตในปัจจุบัน
| ความยาว | ตัวอักษร | พื้นที่ค้นหา | เพดานเอนโทรปี | เฉลี่ยที่ 10 พันล้านครั้ง/วินาที |
|---|---|---|---|---|
| 64 | 64 | 6464 | 384.0 บิต | 6.24e97 years |
สำคัญ: สิ่งเหล่านี้เป็นค่าประมาณทางคณิตศาสตร์สำหรับค่าสุ่มแบบสม่ำเสมอ ตำแหน่งที่จำเป็น จำนวนที่จำกัด รหัสผ่านซ้ำ รูปแบบพจนานุกรม ข้อมูลประจำตัวที่รั่วไหล และต้นทุนการแฮชรหัสผ่านจริงสามารถเปลี่ยนผลลัพธ์ได้อย่างมาก ตัวเลขนี้ไม่ใช่การรับประกันความปลอดภัย
คำแนะนำการปรับใช้คีย์ลับการเซ็นชื่อ JWT
สำหรับ HS256 ให้ใช้คีย์วัสดุสุ่มสม่ำเสมออย่างน้อย 256 บิต HS384 และ HS512 ใช้ขนาดเอาต์พุต SHA-2 ที่แตกต่างกัน แต่การเลือกอัลกอริทึมที่ยาวขึ้นไม่ได้ซ่อมแซมการตรวจสอบที่อ่อนแอ คีย์ที่รั่วไหล หรือบั๊กสับสนอัลกอริทึม
การสร้างเทียบเท่าในเทอร์มินัลและ Node.js
openssl rand -hex 32 import { randomBytes } from 'node:crypto';
const jwtSecret = randomBytes(32).toString('hex'); การจัดเก็บและการหมุนเวียน
- เก็บคีย์เซ็นชื่อไว้ใน Git, frontend bundles, URL, analytics และ application logs
- ใช้ secret manager, Vault, KMS หรือ protected environment variable
- ใช้กลยุทธ์ kid ที่ควบคุมเมื่อหมุนเวียนคีย์
- เลือก RS256 หรือ ES256 เมื่อผู้ตรวจสอบควรถือเฉพาะคีย์สาธารณะ
Hex, Base64 และ Base64URL เป็นการเข้ารหัส—ไม่ใช่การเข้ารหัสลับ ความปลอดภัยมาจากไบต์สุ่มและวิธีการป้องกันคีย์เซ็นชื่อ
วิธีใช้ผลลัพธ์อย่างปลอดภัย
- ตรวจสอบกฎรหัสผ่านปัจจุบันของปลายทาง
- ใช้ผลลัพธ์ที่ไม่ซ้ำและเปิดใช้งาน MFA หากมี
- เก็บรหัสกู้คืนแยกจากรหัสผ่าน
วิธีการสร้างและความเป็นส่วนตัว
ค่าที่ตั้งไว้ล่วงหน้าใช้ Web Crypto API ของเบราว์เซอร์สำหรับการเลือกแบบสุ่ม การสร้างใหม่ การเปลี่ยนการตั้งค่า การเลือก และการคัดลอกผลลัพธ์จะไม่ส่งข้อมูลประจำตัวที่สร้างไปยัง PwdGen ตัวประมาณเวลาในการถอดรหัสรหัสผ่านก็ทำงานในเครื่องและเป็นค่าประมาณ ไม่ใช่การรับประกัน
ตัวสร้างความลับ JWT FAQ
ความลับ HS256 JWT ควรยาวเท่าใด?
ใช้คีย์วัสดุแบบสุ่มอย่างน้อย 256 บิตสำหรับ HS256 หน้านี้สร้างค่าตัวอักษร Base64URL ขนาด 64 อักขระ ซึ่งให้พื้นที่ค้นหาทางทฤษฎีที่ใหญ่กว่าเมื่อสร้างอย่างสม่ำเสมอ
ควรเก็บความลับ JWT ในตัวแปรสภาพแวดล้อมหรือไม่?
ตัวแปรสภาพแวดล้อมปลอดภัยกว่า source code แต่ยังสามารถรั่วไหลผ่านการตรวจสอบกระบวนการ, logs หรือเครื่องมือปรับใช้ ที่เก็บความลับที่จัดการหรือ KMS เหมาะกว่าสำหรับระบบผลิต
เมื่อใดควรใช้ RS256 หรือ ES256 แทน HMAC?
ใช้การลงนามแบบไม่สมมาตรเมื่อผู้ตรวจสอบไม่ควรมีคีย์ส่วนตัวในการลงนาม หรือเมื่อบริการหลายรายต้องการการตรวจสอบด้วยคีย์สาธารณะ ป้องกันคีย์ส่วนตัวและหมุนเวียนคีย์ด้วยกลยุทธ์ตัวระบุคีย์ที่ควบคุม