การเข้ารหัส Base64 สำหรับนักพัฒนา
คุณใช้ Base64 ใน CSS และ JWT tokens คุณจึงจำเป็นต้องรู้ว่ามันทำงานอย่างไร
Base64 เปลี่ยนข้อมูลไบนารี (binary data) ให้เป็นสตริงข้อความ โดยใช้ชุดตัวอักษร 64 ตัว ซึ่งประกอบด้วย A-Z, a-z, 0-9, +, และ / ส่วนเครื่องหมาย = จะใช้สำหรับการทำ padding
Base64 คือการเข้ารหัสแบบ encoding ไม่ใช่การเข้ารหัสลับ (encryption) ห้ามใช้เพื่อความปลอดภัยโดยเด็ดขาด
หลักการทำงาน:
- แบ่งข้อมูลไบนารีออกเป็นกลุ่มละ 3 ไบต์
- แบ่งกลุ่มเหล่านี้ออกเป็น 4 ส่วน ส่วนละ 6 บิต
- จับคู่แต่ละส่วนเข้ากับตัวอักษร
การใช้งานทั่วไป:
- ไฟล์แนบในอีเมล
- รูปภาพใน HTML และ CSS
- JWT tokens
- API responses
- Basic Auth headers
ตัวอย่างการเขียนโค้ด:
ใช้ btoa เพื่อเข้ารหัสสตริง
ใช้ atob เพื่อถอดรหัสสตริง
ใน Node.js ให้ใช้ data.toString('base64')
Base64url เป็นเวอร์ชันพิเศษสำหรับ URL โดยจะแทนที่ + ด้วย - และแทนที่ / ด้วย _ พร้อมทั้งตัด padding ออก ควรใช้เวอร์ชันนี้สำหรับ JWTs
ข้อควรจำ:
- ผลลัพธ์จะมีขนาดใหญ่กว่าข้อมูลต้นฉบับ 33%
- ใช้สำหรับช่องทางที่เป็นข้อความเท่านั้น
- ใช้ Base64url สำหรับ URL
ที่มา: https://dev.to/moksh/base64-encoding-explained-a-practical-guide-for-developers-49hh