tooliv

เข้ารหัส Base64

เข้ารหัสและถอดรหัส Base64

อินพุต

ผลลัพธ์

เข้ารหัส Base64

Base64 คืออะไร?

วิธีเข้ารหัสข้อมูลไบนารีเป็น ASCII โดยใช้ 64 ตัวอักษร

ทำไมต้องใช้ Base64?

เพื่อส่งข้อมูลไบนารีอย่างปลอดภัยในรูปแบบข้อความเช่น อีเมล JSON HTML

Base64 เพิ่มขนาดไฟล์ไหม?

ใช่ ใหญ่ขึ้นประมาณ 33%

Base64: เปลี่ยนข้อมูลไบนารีเป็นข้อความที่ส่งได้จริง

Base64 เอาข้อมูลไบนารี -- อะไรที่คอมพิวเตอร์ชอบแต่ระบบข้อความรับไม่ได้ -- แปลงเป็นตัวอักษร ASCII ธรรมดา เจอได้ทุกที่เลย: ไฟล์แนบอีเมล รูปภาพฝังใน HTML โทเค็นยืนยันตัวตน API ถ้าเคยเห็นสตริงยาวๆ ที่ดูเหมือนตัวอักษรสุ่มๆ ลงท้ายด้วย "==" นั่นแหละ Base64

Base64 ทำให้ไฟล์ใหญ่ขึ้นไหม?

ใช่ ใหญ่ขึ้นประมาณ 33% ข้อตกลงตรงไปตรงมา: ข้อมูลต้นฉบับทุก 3 ไบต์จะกลายเป็น 4 ตัวอักษร ASCII คุณได้ความเข้ากันได้ (ใช้ได้ทุกที่ที่ส่งข้อความได้) แต่เสียประสิทธิภาพเรื่องขนาดไฟล์ไปบ้าง

Base64 ทำงานยังไงจริงๆ?

Base64 หยิบข้อมูล 3 ไบต์ (24 บิต) แล้วหั่นเป็นสี่กลุ่มๆ ละ 6 บิต แต่ละกลุ่ม 6 บิตจะจับคู่กับหนึ่งใน 64 ตัวอักษร: A ถึง Z, a ถึง z, 0 ถึง 9, บวก (+) และ สแลช (/) ถ้าข้อมูลหารด้วย 3 ไม่ลงตัว ก็จะมีตัวอักษร "=" เติมท้าย ผลลัพธ์? ข้อมูลไบนารีอะไรก็ตาม ไม่ว่ารูปภาพ ไฟล์ อะไรก็ได้ กลายเป็นข้อความที่ปลอดภัยและพิมพ์ได้

จะเจอ Base64 ตรงไหนบ้าง?

อีเมลคือ use case แรกสุด -- MIME encoding ใช้ Base64 เปลี่ยนไฟล์แนบเป็นข้อความที่ผ่านเซิร์ฟเวอร์อีเมลได้ นักพัฒนาเว็บใช้มันฝังรูปภาพเล็กๆ ใน CSS หรือ HTML ผ่าน data URI ประหยัด HTTP request ไปหนึ่งครั้ง ถ้าเคยตั้งค่า API authentication ด้วย Basic Auth ก็กำลัง Base64 เข้ารหัส username กับ password อยู่นะ นอกจากนี้ยังโผล่ขึ้นมาทุกครั้งที่ต้องยัดข้อมูลไบนารีเข้า JSON, XML หรือ format ข้อความอะไรก็ตาม

Base64 เทียบกับ Encoding แบบอื่น

ขนาดที่เพิ่มขึ้น 33% ของ Base64 คือราคาที่จ่ายเพื่อรองรับได้เกือบทุกที่ Base32 เพิ่ม overhead เป็น 60% แต่ไม่สนตัวพิมพ์ใหญ่เล็ก ซึ่งช่วยได้ในบาง case Hex encoding ทำให้ข้อมูลใหญ่ขึ้นเท่าตัว แต่อ่านง่ายสุดตอนดีบัก ยังมี URL-safe Base64 ที่สลับ + กับ / เป็น - กับ _ เพื่อไม่ให้ข้อมูลที่เข้ารหัสทำ URL พัง เลือกอันที่เหมาะกับที่ข้อมูลจะไปและขนาดสำคัญแค่ไหน

คำถามที่พบบ่อย

Base64 คืออะไร?

วิธีเข้ารหัสข้อมูลไบนารีเป็น ASCII โดยใช้ 64 ตัวอักษร

ทำไมต้องใช้ Base64?

เพื่อส่งข้อมูลไบนารีอย่างปลอดภัยในรูปแบบข้อความเช่น อีเมล JSON HTML

Base64 เพิ่มขนาดไฟล์ไหม?

ใช่ ใหญ่ขึ้นประมาณ 33%

เครื่องมือที่เกี่ยวข้อง