เครื่องมือนี้ทำอะไร
AES (Advanced Encryption Standard) คือการเข้ารหัสแบบสมมาตรที่ใช้แทบทุกที่ ทั้ง HTTPS การเข้ารหัสดิสก์ โปรแกรมจัดการรหัสผ่าน และแอปแชต คีย์ลับเดียวกันใช้ทั้งเข้ารหัสและถอดรหัส เครื่องมือนี้เข้ารหัสข้อความเป็น Base64 ที่วางที่ไหนก็ได้ และถอดรหัสกลับได้
คุณสามารถใช้:
- วลีรหัสผ่าน ซึ่งถูกแปลงเป็นคีย์ 128 หรือ 256 บิตด้วย PBKDF2-HMAC-SHA256 และ salt สุ่ม หรือ
- คีย์ฐานสิบหก 32 หรือ 64 หลัก (128 หรือ 256 บิต) ที่ใช้โดยตรง คลิก สุ่มคีย์ เพื่อสร้างคีย์ใหม่
มีโหมดการทำงานสองแบบ AES-GCM เป็นค่าเริ่มต้นสมัยใหม่ที่ตรวจจับการแก้ไขข้อมูลได้ AES-CBC พร้อม padding แบบ PKCS#7 มีไว้เพื่อความเข้ากันได้กับระบบเก่า
วิธีใช้
- เลือก เข้ารหัส หรือ ถอดรหัส อัลกอริทึม และชนิดคีย์
- พิมพ์วลีรหัสผ่านหรือวางคีย์ฐานสิบหกที่ด้านบนของช่องอินพุต
- วางข้อความ (หรือ Base64 ที่จะถอดรหัส) ผลลัพธ์จะแสดงทางขวา ใช้เป็นอินพุต จะสลับทิศทางเพื่อตรวจว่าเข้ารหัสแล้วถอดกลับได้
รูปแบบผลลัพธ์
ผลลัพธ์เป็นสตริง Base64 เดียว เพื่อไม่ให้เสียหายเมื่อส่งทางอีเมลหรือแชต:
passphrase: salt (16 bytes) | IV (12 GCM / 16 CBC) | ciphertext (+ 16-byte tag for GCM)
hex key: IV (12 GCM / 16 CBC) | ciphertext (+ 16-byte tag for GCM)
การถอดรหัสต้องใช้อัลกอริทึม ชนิดคีย์ ขนาดคีย์ และจำนวนรอบเดียวกับตอนเข้ารหัส การตั้งค่าเหล่านี้ถูกเก็บไว้ในที่อยู่หน้าเว็บ ลิงก์ที่แชร์จึงพาค่าเหล่านี้ไปด้วย ส่วนคีย์ยังอยู่กับคุณ
การเลือกวลีรหัสผ่าน
PBKDF2 ทำให้การเดาแต่ละครั้งช้าลง แต่ช่วยวลีรหัสผ่านที่สั้นหรือพบบ่อยไม่ได้ ใช้วลีรหัสผ่านที่ยาวและสุ่ม เช่นจากเครื่องมือสร้างรหัสผ่าน และส่งผ่านช่องทางที่ต่างจากข้อความเข้ารหัส จำนวนรอบที่มากขึ้นทำให้เดายากขึ้นและถอดรหัสช้าลงเล็กน้อย ค่าที่นิยมคือ 100,000 ถึง 600,000
คำถามที่พบบ่อย
› ควรเลือก GCM หรือ CBC
เลือก GCM เว้นแต่ระบบอื่นบังคับให้ใช้ CBC GCM มีการยืนยันความถูกต้อง คีย์ผิดหรือไบต์ที่ถูกแก้แม้เพียงไบต์เดียวจะถูกตรวจพบแทนที่จะได้ข้อมูลขยะ CBC ให้เพียงการรักษาความลับ และใช้เพื่อความเข้ากันได้กับโค้ดเก่าเป็นหลัก
› ทำไมข้อความเข้ารหัสจึงต่างกันทุกครั้ง
การเข้ารหัสแต่ละครั้งใช้ IV สุ่มชุดใหม่ และหากใช้วลีรหัสผ่านก็จะใช้ salt สุ่มชุดใหม่ด้วย ทั้งสองถูกเก็บไว้ที่ต้นผลลัพธ์ การถอดรหัสจึงยังทำได้ การใช้ IV ซ้ำกับคีย์เดิม โดยเฉพาะใน GCM เป็นจุดอ่อนร้ายแรง
› จะถอดรหัสผลลัพธ์ในโค้ดของตัวเองได้อย่างไร
ถอด Base64 ก่อน หากใช้วลีรหัสผ่าน 16 ไบต์แรกคือ salt ของ PBKDF2 ตามด้วย IV (GCM 12 ไบต์ CBC 16 ไบต์) แล้วจึงเป็นข้อความเข้ารหัส สร้างคีย์ด้วย PBKDF2-HMAC-SHA256 จำนวนรอบเท่าเดิม หากใช้คีย์ฐานสิบหกจะไม่มี salt สำหรับ GCM 16 ไบต์สุดท้ายคือแท็กยืนยันความถูกต้อง
› วลีรหัสผ่านหรือคีย์ของฉันถูกบันทึกหรือส่งไปที่ไหนหรือไม่
ไม่ การเข้ารหัสทำในเบราว์เซอร์ด้วย Web Crypto API วลีรหัสผ่านหรือคีย์อยู่ในหน่วยความจำของหน้านี้เท่านั้น ไม่ถูกบันทึก ไม่ถูกเขียนลงแถบที่อยู่ และไม่รวมในลิงก์แชร์ คุณจึงแชร์ข้อความที่เข้ารหัสได้โดยไม่ต้องส่งคีย์