การเข้ารหัส 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