วิธีใช้งาน
- เลือก Text หรือ File ที่ด้านบน
- สำหรับข้อความ ให้เลือกทิศทางแล้วพิมพ์หรือวาง ผลลัพธ์จะอัปเดตขณะพิมพ์
- หากต้องการเข้ารหัสไฟล์ ให้เลือกหรือลากไฟล์มาวาง (สูงสุด 10 MB) เลือก “แสดงผลเป็น data URL” หากต้องการฝังใน HTML หรือ CSS
- หากต้องการแปลง Base64 กลับเป็นไฟล์ ให้เลือก Base64 → Text วางข้อมูล แล้วคลิก “ดาวน์โหลดเป็นไฟล์”
วิธีการทำงาน
Base64 ใช้ตัวอักษร ASCII ที่พิมพ์ได้ 64 ตัว ได้แก่ A–Z, a–z, 0–9, + และ / เพื่อแทนข้อมูลไบนารี ทุก 3 ไบต์จะกลายเป็น 4 ตัวอักษร ทำให้ข้อมูลที่เข้ารหัสมีขนาดใหญ่กว่าต้นฉบับประมาณ 33% หากความยาวข้อมูลขาเข้าไม่ใช่จำนวนเท่าของ 3 ผลลัพธ์จะเติมเครื่องหมาย = หนึ่งหรือสองตัว
Base64 เป็นการเข้ารหัส ไม่ใช่การเข้ารหัสลับ ทุกคนสามารถถอดรหัสได้โดยไม่ต้องใช้กุญแจ จึงห้ามใช้เพื่อซ่อนรหัสผ่านหรือข้อมูลส่วนบุคคล จุดประสงค์คือช่วยให้ข้อมูลไบนารีส่งผ่านระบบที่รองรับข้อความ เช่น อีเมล (MIME), JSON, XML, HTTP headers และ data URLs
ข้อความจะถูกแปลงเป็นไบต์ UTF-8 ก่อน จึงเข้ารหัสอักขระนอก ASCII ได้อย่างถูกต้อง เรื่องนี้สำคัญเพราะฟังก์ชัน btoa ที่มีมาในเบราว์เซอร์ใช้กับอักขระอย่าง é หรืออีโมจิไม่ได้ เมื่อต้องถอดรหัส เครื่องมือจะตรวจสอบว่าผลลัพธ์เป็น UTF-8 ที่ถูกต้องหรือไม่ หากไม่ใช่ แสดงว่าเป็นข้อมูลไบนารี จึงแสดงเป็นเลขฐานสิบหกแทนข้อความที่อ่านไม่รู้เรื่อง
รูปแบบที่ปลอดภัยสำหรับ URL (base64url, RFC 4648 section 5) จะแทน + ด้วย - และ / ด้วย _ และมักตัดเครื่องหมายเติม = ออก เนื่องจากอักขระเหล่านี้มีความหมายพิเศษใน URL รูปแบบนี้ใช้ใน JSON Web Tokens และ web APIs หลายแห่ง การตัดบรรทัดแบบ MIME (RFC 2045) จะแบ่งผลลัพธ์เป็นบรรทัดละไม่เกิน 76 ตัวอักษร ซึ่งระบบอีเมลบางระบบและไฟล์ใบรับรอง PEM กำหนดให้ใช้
การถอดรหัสจะยืดหยุ่นเมื่อทำได้อย่างปลอดภัย โดยจะข้ามช่องว่างและการขึ้นบรรทัดใหม่ เติมเครื่องหมาย padding ที่ขาดไป และรองรับตัวอักษรทั้งสองชุด ส่วนข้อผิดพลาดอื่น ๆ เช่น อักขระที่ไม่เกี่ยวข้องหรือเครื่องหมาย padding ที่อยู่กลางข้อมูล จะแจ้งตำแหน่งที่พบแทนการละเลยไปโดยไม่แจ้ง
ตัวอย่าง
เข้ารหัสข้อความที่มีเครื่องหมายกำกับเสียงและอีโมจิ
“Grüße 👋” จะกลายเป็น R3LDvMOfZSDwn5GL อักษร ü และ ß ใช้ UTF-8 อักษรละ 2 ไบต์ ส่วนอีโมจิใช้ 4 ไบต์ ดังนั้นอักขระ 7 ตัวจึงกลายเป็น 12 ไบต์ และอักขระ Base64 16 ตัว
สร้าง HTTP Basic Authorization header
สำหรับผู้ใช้ “alice” และรหัสผ่าน “s3cret” ให้เข้ารหัส alice:s3cret จะได้ YWxpY2U6czNjcmV0 แล้วส่ง header Authorization: Basic YWxpY2U6czNjcmV0 เนื่องจาก Base64 ไม่ใช่การเข้ารหัสลับ จึงต้องใช้ Basic authentication ผ่าน HTTPS เท่านั้น
กู้คืนไฟล์จาก data URL
วางสตริง เช่น data:image/png;base64,iVBORw0KGgo… ใน Base64 → Text เครื่องมือจะตัด prefix ออก ตรวจพบว่าเป็นข้อมูล PNG แสดงผลเป็นเลขฐานสิบหกเนื่องจากไม่ใช่ข้อความ และบันทึก decoded.png ได้ด้วย “Download as file”
คำถามที่พบบ่อย
Base64 เป็นการเข้ารหัสลับหรือไม่
ไม่ Base64 เป็นการเข้ารหัสแบบย้อนกลับได้โดยไม่ต้องใช้กุญแจหรือความลับ ใครก็ตามที่เห็นสตริง Base64 ก็ถอดรหัสได้ทันที อย่าใช้ Base64 เพื่อปกป้องรหัสผ่าน โทเค็น หรือข้อมูลส่วนบุคคล
ทำไมข้อความที่ถอดรหัสแล้วจึงแสดงอักขระแปลก ๆ ในเครื่องมืออื่น
มักเกิดจากข้อความถูกเข้ารหัสเป็น UTF-8 แต่ถอดรหัสเป็น Latin-1 (หรือกลับกัน) เครื่องมือนี้ใช้ UTF-8 เสมอ และจะแจ้งให้ทราบเมื่อไบต์ที่ถอดรหัสแล้วไม่ใช่ข้อความ UTF-8 ที่ถูกต้อง
Base64 กับ base64url ต่างกันอย่างไร
ทั้งสองใช้วิธีเดียวกัน แต่ base64url แทนที่ + ด้วย - และ / ด้วย _ และมักตัดเครื่องหมายเติม = ออก จึงนำผลลัพธ์ไปใช้ใน URL และชื่อไฟล์ได้โดยไม่ต้อง escape เพิ่ม ตัวถอดรหัสนี้รองรับทั้งสองรูปแบบ
ทำไมผลลัพธ์ Base64 จึงมีขนาดใหญ่กว่าไฟล์
Base64 แปลงทุก 3 ไบต์เป็น 4 อักขระ ทำให้ข้อมูลเพิ่มขึ้นประมาณ 33% การตัดบรรทัดเพิ่มอีก 2 อักขระ (CRLF) ต่อทุก 76 อักขระ สำหรับรูปภาพขนาดใหญ่ โดยทั่วไปควรให้บริการไฟล์ตามปกติ แทนการฝังเป็น data URL
มีขีดจำกัดขนาดหรือไม่
ไฟล์มีขนาดได้สูงสุด 10 MB ข้อความที่วางไม่มีขีดจำกัดตายตัว แต่ข้อมูลขนาดใหญ่มาก (หลายสิบเมกะไบต์) อาจทำให้หน้าเว็บทำงานช้า โดยเฉพาะบนโทรศัพท์
ความเป็นส่วนตัว
การเข้ารหัสและถอดรหัสทำงานในเบราว์เซอร์ของคุณ ข้อความและไฟล์จะไม่ถูกอัปโหลดหรือจัดเก็บ และเนื้อหาจะไม่ถูกรวมไว้ในข้อมูลวิเคราะห์ ดาวน์โหลดไฟล์ไปยังอุปกรณ์ของคุณโดยตรง