Base64 คืออะไร ใช้ทำอะไร decode ยังไง
🔤 Base64 ไม่ใช่การ encrypt — มันคือการแปลง binary ให้เป็น text ASCII ที่ส่งผ่านระบบต่างๆ ได้ปลอดภัย ทุกคนที่เห็น Base64 string สามารถ decode กลับได้ทันที
ทำไมต้องมี Base64
ระบบเก่าๆ หลายอย่าง (HTTP headers, email protocols อย่าง SMTP, XML) ถูกออกแบบมาให้รองรับ ASCII text เท่านั้น แต่ข้อมูลในโลกจริงมักเป็น binary เช่น รูปภาพ ไฟล์ PDF หรือ cryptographic keys
Base64 แก้ปัญหานี้โดยแปลง binary ทุก 3 byte (24 bits) ให้เป็น 4 ตัวอักษร ASCII ที่ "ปลอดภัย" ประกอบด้วย A–Z, a–z, 0–9, + และ / รวม 64 ตัวอักษร (จึงชื่อ Base64)
Encode และ Decode ใน JavaScript
btoa('สวัสดี madestool');
// ⚠️ btoa รองรับแค่ Latin chars — สำหรับ Unicode ต้องแปลงก่อน
btoa(unescape(encodeURIComponent('สวัสดี')));
// Decode (แปลง Base64 กลับเป็น text)
atob('bWFkZXN0b29s'); // → "madestool"
import base64
encoded = base64.b64encode(b'madestool')
# → b'bWFkZXN0b29s'
decoded = base64.b64decode(b'bWFkZXN0b29s')
# → b'madestool'
ใช้ Base64 ในงานพัฒนาที่ไหนบ้าง
| Use Case | ตัวอย่าง |
|---|---|
| JWT Token | Header และ Payload ของ JWT เป็น Base64URL encodedeyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyMSJ9.xxx |
| Data URL รูปภาพ | src="data:image/png;base64,iVBORw0KGgoAAA..." |
| HTTP Basic Auth | Authorization: Basic dXNlcjpwYXNz (user:pass ใน Base64) |
| Email attachment | ไฟล์แนบ email ถูก encode เป็น Base64 ใน MIME format |
| API Payload | บาง API ส่ง binary data เป็น Base64 string ใน JSON |
Base64 vs Base64URL — ต่างกันอย่างไร
Base64 ทั่วไปใช้ + และ / ซึ่งมีความหมายพิเศษใน URL (+ = space, / = path separator) จึงมี Base64URL ที่แทนที่ด้วย - และ _ แทน:
- Base64:
dGVzdCtmb28v - Base64URL:
dGVzdCtmb28_(ใช้ใน JWT, OAuth tokens)
⚠️ Base64 ไม่ใช่การเข้ารหัส! ใครก็ decode ได้ทันที อย่าเอา password หรือข้อมูลลับใส่ใน Base64 แล้วคิดว่าปลอดภัย
Padding — เครื่องหมาย = ที่อยู่ท้าย
Base64 แปลงทุก 3 byte เป็น 4 ตัวอักษร ถ้าข้อมูลต้นทางไม่ได้หารด้วย 3 ลงตัว จะมี = หรือ == ต่อท้ายเพื่อ padding ให้ครบ:
- "A" (1 byte) →
QQ==(2 = padding) - "AB" (2 bytes) →
QUI=(1 = padding) - "ABC" (3 bytes) →
QUJD(ไม่มี padding)
✅ ถ้าต้องการ decode Base64 string ที่ดูแปลกๆ ให้ใช้ เครื่องมือ decode ฟรีที่ทำงานในเบราว์เซอร์ ข้อมูลไม่ออกจากเครื่องคุณ
🔤 Encode / Decode Base64 ทันที
วาง text หรือ Base64 string ระบบแปลงให้ทันทีในเบราว์เซอร์ รองรับ Unicode และ Base64URL
เปิด Base64 Encoder/Decoder →ฟรี · ไม่ต้องสมัครสมาชิก · ข้อมูลไม่ออกจากเครื่อง