AES Encrypt & Decrypt: เข้ารหัสข้อมูลด้วย AES-256-GCM ในเบราว์เซอร์
เรียนรู้วิธีเข้ารหัสและถอดรหัสข้อความด้วย AES-128/192/256-GCM โดยใช้แค่ password — มี PBKDF2 key derivation, authenticated encryption และประมวลผล 100% ฝั่ง client-side
Table of Contents
การส่งข้อมูลอ่อนไหวผ่าน chat, email หรือบันทึกไว้ใน cloud storage มักมีความเสี่ยงที่คนอื่นอ่านได้โดยที่เราไม่รู้ตัว วิธีป้องกันที่เชื่อถือได้ที่สุดวิธีหนึ่งคือการเข้ารหัส (encryption) ข้อมูลนั้นก่อนส่งออกไปจากเครื่องเรา และ AES-GCM ก็คือมาตรฐาน symmetric encryption ที่ถูกใช้จริงในระบบงานระดับโลก
AES Encrypt & Decrypt คือเครื่องมือ online ฟรีที่ช่วยให้คุณเข้ารหัสและถอดรหัส (decrypt) ข้อความได้ทันทีในเบราว์เซอร์ โดยใช้แค่ password เดียว ไม่ต้องติดตั้งอะไร ไม่ต้องมีความรู้ cryptography เชิงลึก และที่สำคัญที่สุด — ทุกอย่างประมวลผล 100% ฝั่ง client-side ผ่าน Web Crypto API ข้อมูลของคุณไม่เคยถูกส่งไปที่ server ของใครเลยแม้แต่ไบต์เดียว
บทความนี้จะพาคุณรู้จักเครื่องมือ วิธีใช้งานทีละขั้นตอน พร้อมเจาะลึกว่า AES-GCM, PBKDF2, salt, IV และ auth tag ทำงานอย่างไร เพื่อให้คุณใช้ encryption ได้อย่างมั่นใจและปลอดภัยจริง
ทำไมต้องใช้ AES Encrypt & Decrypt
- ประมวลผล 100% ในเบราว์เซอร์ — ทุกการเข้ารหัสเกิดขึ้นบนเครื่องคุณเองผ่าน crypto.subtle ของ Web Crypto API ไม่มี network request, ไม่มี log, ไม่มีการเก็บข้อมูลใด ๆ ทั้งสิ้น
- ใช้มาตรฐานระดับอุตสาหกรรม — AES-GCM คือ authenticated encryption ที่ถูกใช้ใน TLS, VPN, disk encryption และระบบ banking ทั่วโลก ไม่ใช่ algorithm ที่คิดค้นขึ้นมาเอง
- ใช้ง่ายแค่กรอก password — ไม่ต้องจัดการ key หรือ IV เอง เครื่องมือ derive key จาก password ให้อัตโนมัติ และ embed salt/IV ไว้ในผลลัพธ์ให้เรียบร้อย
- เลือก key size ได้ 3 ระดับ — AES-128, AES-192 หรือ AES-256 (ค่า default) ให้เหมาะกับงานและความเร็วที่ต้องการ
- ตรวจจับการแก้ไขข้อมูลได้ — ด้วย auth tag ของ GCM mode ถ้า ciphertext ถูกแก้ไขแม้แต่ 1 bit เครื่องมือจะแจ้ง error ทันทีแทนที่จะถอดรหัสออกมาเป็นขยะ
- ฟรี ไม่จำกัดจำนวนครั้ง — ใช้ได้ไม่จำกัด ไม่ต้องสมัครสมาชิก ไม่มีการเก็บประวัติการใช้งาน
ฟีเจอร์เด่น
| ฟีเจอร์ | รายละเอียด |
|---|---|
| Algorithm | AES-GCM (Galois/Counter Mode) — authenticated encryption |
| Key size | AES-128 / AES-192 / AES-256 (default 256) |
| Key derivation | PBKDF2-HMAC-SHA256, 150,000 iterations |
| Salt | สุ่มใหม่ 16 bytes ทุกครั้งที่เข้ารหัส |
| IV (nonce) | สุ่มใหม่ 12 bytes ทุกครั้งที่เข้ารหัส |
| Output format | base64(salt || IV || ciphertext+tag) — ส่งต่อเป็นข้อความเดียวได้เลย |
| การประมวลผล | 100% client-side ผ่าน Web Crypto API |
- โหมด Encrypt/Decrypt สลับได้ด้วยปุ่ม Swap — เข้ารหัสเสร็จ กด Swap เดียว กลับด้านเป็นโหมดถอดรหัส สะดวกต่อการทดสอบว่าถอดกลับได้จริง
- ปุ่ม Copy และ Clear — คัดลอกผลลัพธ์ base64 ไปใช้ทันที พร้อมปุ่มล้างข้อมูลทั้งหมดเมื่อใช้งานเสร็จ
- Default AES-256 — ระดับความปลอดภัยเดียวกับที่ราชการสหรัฐฯ (NSA) อนุมัติใช้กับข้อมูล TOP SECRET
วิธีใช้งาน
- เปิดเครื่องมือ AES Encrypt & Decrypt แล้วเลือกโหมด Encrypt (ค่า default) — หรือเลือก Decrypt ถ้าต้องการถอดรหัสข้อความที่เข้ารหัสไว้แล้ว
- เลือก key length ที่ต้องการ: AES-128, AES-192 หรือ AES-256 — แนะนำให้คงไว้ที่ AES-256 ถ้าไม่มีเหตุผลพิเศษ
- กรอก password ที่ strong และไม่เคยใช้ที่อื่น (ใช้ Password Generator ช่วยสร้างได้) — จำให้แน่นอน เพราะไม่มีระบบกู้คืน
- วางข้อความที่ต้องการเข้ารหัสลงในช่อง input แล้วกด Encrypt — ผลลัพธ์จะออกมาเป็น base64 string เดียวที่มี salt, IV และ ciphertext+tag รวมอยู่ในตัว
- กด Copy เพื่อคัดลอก ciphertext ไปเก็บหรือส่งต่อ แล้วกด Clear เพื่อล้างข้อมูลทั้งหมดออกจากหน้าจอเมื่อเสร็จแล้ว
ทำความเข้าใจ AES-GCM Encryption
AES (Advanced Encryption Standard) คือ block cipher ที่เข้ารหัสข้อมูลเป็นบล็อกละ 16 bytes ส่วน GCM (Galois/Counter Mode) คือโหมดการทำงานที่เปลี่ยน AES ให้กลายเป็น stream cipher ที่เร็วและสามารถทำงานแบบขนานได้ จุดเด่นที่สุดของ GCM คือมันเป็น authenticated encryption — นอกจากเข้ารหัสให้เป็นความลับแล้ว ยังคำนวณ auth tag ออกมาด้วย เพื่อยืนยันว่า ciphertext ไม่ถูกใครแก้ไขระหว่างทาง ถ้ามีการแก้แม้แต่ตัวอักษรเดียว การถอดรหัสจะล้มเหลวทันที
PBKDF2 กับ 150,000 iterations สำคัญอย่างไร — มนุษย์ตั้ง password ที่คาดเดาได้ง่ายกว่า random key มาก PBKDF2 (Password-Based Key Derivation Function 2) คือกระบวนการยืด password ให้กลายเป็น AES key ที่ปลอดภัย โดยการ hash ซ้ำ 150,000 รอบ ทำให้การ brute-force คาดเดา password ต้องเสียค่าใช้จ่าย computation มหาศาลเป็น 150,000 เท่า ยิ่ง iterations สูง ยิ่งแพงสำหรับคนทำร้าย แต่แทบไม่รู้สึกสำหรับคนใช้งานปกติ (หนึ่งครั้งใช้เวลาแค่เสี้ยววินาที)
Salt และ IV ทำหน้าที่อะไร — salt (16 bytes) คือค่าสุ่มที่ทำให้ password เดียวกัน derive ออกมาเป็น key ต่างกันทุกครั้ง ป้องกัน rainbow table และการโจมตีแบบ precomputed ส่วน IV/nonce (12 bytes) คือค่าสุ่มที่ทำให้ plaintext เดียวกันเข้ารหัสแล้วได้ ciphertext ต่างกันทุกครั้ง ทั้งสองค่าถูกสุ่มใหม่ด้วย CSPRNG ทุกครั้งที่กด encrypt และถูก embed ไว้ในผลลัพธ์
รูปแบบ output — ผลลัพธ์ที่ได้คือ base64 ของ salt(16) || IV(12) || ciphertext+tag เรียงต่อกันเป็น string เดียว แปลว่าคุณส่ง ciphertext นี้ไปทางไหนก็ได้โดยไม่ต้องจดจ่า salt/IV แยก เพราะทุกอย่างรวมอยู่ในตัวแล้ว — ฝั่งรับแค่กรอก password ตัวเดิมก็ถอดคืนได้
AES-128 vs 192 vs 256 — เลขคือจำนวน bit ของ key ยิ่งยาวยิ่ง brute-force ยากขึ้นแบบ exponential ในทางปฏิบัติ AES-128 ก็ปลอดภัยเกินพอสำหรับงานทั่วไปแล้ว แต่ AES-256 ให้ safety margin สูงกว่าและเป็นค่า default ของเครื่องมือ ส่วน AES-192 อยู่กลาง ๆ มักใช้ในระบบ legacy บางประเภท
Use Cases ในทางปฏิบัติ
ส่ง secret ผ่าน chat หรือ email
สมมติต้องส่งรหัสประตูบ้านให้เพื่อนทาง LINE หรือส่ง database password ให้เพื่อนร่วมทีมทาง Slack — ช่องทางพวกนี้ไม่ควรถือว่าเป็นส่วนตัวจริง ๆ เข้ารหัสข้อความก่อนส่ง แล้วบอก password ทางอื่น (โทร, พบกันตัวจริง, ช่องทางอื่น) เพื่อนแค่เปิดเครื่องมือ วาง ciphertext กรอก password ก็อ่านข้อความได้ทันที
ป้องกัน notes ก่อนเก็บใน cloud storage
Google Docs, Notion, Dropbox — สะดวกแต่แปลว่าข้อมูลอยู่บนเครื่องคนอื่น ถ้ามีบันทึกส่วนตัว รหัสบัญชี หรือข้อมูลที่ละเอียดอ่อน ลองเข้ารหัสด้วย AES-256 ก่อน save ลง cloud แม้บัญชี cloud ถูกแฮ็ก คนที่ได้ข้อมูลไปก็แค่ base64 ที่ไร้ความหมาย
เข้ารหัสค่าใน .env ก่อน commit
Developer หลายคนเคยเผลอ commit .env ที่มี production secret เข้า git ไปแล้ว วิธีลดความเสี่ยงคือเข้ารหัสค่าที่อ่อนไหวก่อนเก็บใน repo แล้วเก็บ decrypt password ไว้ที่ password manager หรือ secret manager ของทีม โดยที่ตัวเครื่องมือไม่เก็บอะไรไว้เลย จึงปลอดภัยแม้ใช้ร่วมกับข้อมูลงาน
สอนและสาธิตแนวคิด cryptography
ครูหรือสมาชิกในทีมที่อยากเข้าใจว่า symmetric encryption, salt, IV และ auth tag ทำงานอย่างไร ใช้เครื่องมือนี้ทดลองได้ทันที — เข้ารหัสข้อความเดิม 2 ครั้งแล้วเทียบผลลัพธ์ จะเห็นเองว่า ciphertext ต่างกันเพราะ salt/IV สุ่มใหม่ หรือลองแก้ ciphertext ตัวเดียวแล้วลองถอด จะเห็นว่า GCM ตรวจจับการแก้ไขได้อย่างไร
Best Practices
- ใช้ password ที่ strong และไม่เคยใช้ที่อื่น — encryption แข็งแรงแค่ไหนก็ช่วยไม่ได้ถ้า password ถูกทายได้ง่าย ใช้ตัวสร้าง password ช่วยและเก็บใน password manager
- อย่า reuse key/password ระหว่างงาน — แยก password ต่อวัตถุประสงค์ ถ้ารั่วหนึ่งชุดไม่กระทบอีกชุด
- คงใช้ AES-256 (default) — ใช้ AES-128/192 เฉพาะเมื่อมีข้อจำกัดด้านความเร็วหรือ compatibility เท่านั้น
- อย่าส่ง password ผ่านช่องทางเดียวกับ ciphertext — ถ้าแฮ็กเกอร์เข้าถึงช่องทางนั้นได้ เขาก็ได้ครบทั้งคู่ ควรแยกช่องทาง เช่น ciphertext ทาง email แต่ password ทางโทรศัพท์
- ทดสอบ decrypt ให้สำเร็จก่อนลบ plaintext ต้นฉบับ — ใช้ปุ่ม Swap สลับโหมดแล้วลองถอดกลับทันที ยืนยันว่าจำ password ถูกและ ciphertext ครบถ้วนก่อนทำลายต้นฉบับ
- จำไว้ว่าไม่มีระบบกู้คืน — ลืม password = ข้อมูลหายถาวร เพราะไม่มี server ใดเก็บ key ของคุณไว้ (นี่คือ feature ด้านความปลอดภัย ไม่ใช่ bug)
เริ่มเข้ารหัสวันนี้
ข้อมูลอ่อนไหวที่ปล่อยเป็น plaintext คือความเสี่ยงที่รอวันเกิดเหตุ ด้วย AES Encrypt & Decrypt คุณมีเครื่องมือระดับมาตรฐานอุตสาหกรรมที่เข้ารหัสข้อมูลด้วย AES-256-GCM ได้ในไม่กี่วินาที โดยไม่ต้องติดตั้งอะไรเลย — เปิดหน้าเว็บ กรอก password กดปุ่มเดียวเสร็จ และมั่นใจได้ว่าข้อมูลไม่เคยออกจากเบราว์เซอร์ของคุณ
ลองใช้เลยวันนี้ — ข้อความแรกของคุณอาจเป็น "hello world" ธรรมดา แต่ครั้งต่อไปอาจเป็น secret ที่ต้องปกป้องจริง ๆ
เครื่องมือที่เกี่ยวข้อง:
- Password Generator — สร้าง password ที่ strong และสุ่มแบบ cryptographic สำหรับใช้กับการเข้ารหัส
- Bcrypt Generator — hash password ด้วย bcrypt สำหรับเก็บในฐานข้อมูลของแอปพลิเคชัน
- HMAC Generator — สร้าง HMAC signature สำหรับยืนยันความถูกต้องและ integrity ของข้อมูล
ขอให้สนุกกับการเข้ารหัส!