วิธีเข้ารหัสข้อความเป็น Base64
- พิมพ์หรือวางข้อความลงในช่อง อินพุต หรือเปิดไฟล์
- เลือกชุดอักขระ (UTF-8 รองรับทุกภาษาและอีโมจิ) และเปิดเอาต์พุตแบบปลอดภัยสำหรับ URL หรือการขึ้นบรรทัดทุก 76 อักขระหากจำเป็น
- คัดลอกผลลัพธ์ Base64 หรือดาวน์โหลดเป็นไฟล์ข้อความ
การเข้ารหัส Base64 ทำงานอย่างไร
ตัวเข้ารหัสจะนำข้อความของคุณมาเป็นไบต์ แบ่งเป็นกลุ่มละ 3 ไบต์ (24 บิต) แล้วแปลงแต่ละกลุ่มเป็น 4 อักขระจากชุดตัวอักษร 64 ตัว หากกลุ่มสุดท้ายไม่ครบ จะเติมเครื่องหมาย = เป็น padding ด้วยเหตุนี้ผลลัพธ์ Base64 จึงใหญ่กว่าข้อมูลต้นฉบับประมาณ 33% เช่น Man จะกลายเป็น TWFu
การเข้ารหัส Base64 ในภาษาโปรแกรมยอดนิยม
- JavaScript:
btoa(String.fromCharCode(...new TextEncoder().encode(text))) - Python:
base64.b64encode(text.encode()).decode() - PHP:
base64_encode($text) - Java:
Base64.getEncoder().encodeToString(text.getBytes(UTF_8)) - Linux/macOS:
echo -n 'text' | base64
คำถามที่พบบ่อย
ทำไมผลลัพธ์ Base64 จึงยาวกว่าข้อความต้นฉบับ?
Base64 เก็บข้อมูล 3 ไบต์ไว้ใน 4 อักขระ ผลลัพธ์จึงมีขนาดประมาณ 4/3 ของข้อมูลเดิม บวกกับ padding ส่วนอักขระที่ไม่ใช่ภาษาละติน (รวมถึงภาษาไทย) ใช้ 2–4 ไบต์ใน UTF-8 ทำให้ Base64 ยาวขึ้นไปอีก
เครื่องหมาย = ที่ท้ายสตริงหมายถึงอะไร?
นั่นคือ padding หากมี = หนึ่งตัว แสดงว่ากลุ่มสุดท้ายมี 2 ไบต์ หากมี == สองตัว แสดงว่ามี 1 ไบต์ ส่วน Base64 แบบปลอดภัยสำหรับ URL มักละเครื่องหมายเหล่านี้ไว้
เข้ารหัสอีโมจิและข้อความภาษาไทยได้ไหม?
ได้ เพียงตั้งชุดอักขระเป็น UTF-8 ไว้ ทุกภาษา สัญลักษณ์ หรืออีโมจิจะถูกเข้ารหัสอย่างถูกต้อง และถอดรหัสได้บนทุกระบบ
ควรเปิดการขึ้นบรรทัดใหม่ทุก 76 อักขระเมื่อใด?
เฉพาะกับอีเมล (MIME) และใบรับรอง PEM บางชนิดที่กำหนดให้ต้องตัดบรรทัด สำหรับ API, JSON, URL และ data URI ควรปิดตัวเลือกนี้ไว้