tigtools

ตัวเข้ารหัส / ถอดรหัส Base64

แปลงข้อความหรือไฟล์ใดก็ได้เป็น Base64 หรือถอดรหัส Base64 กลับเป็นข้อความที่อ่านได้หรือไฟล์ต้นฉบับ รองรับอักขระเน้นเสียง อีโมจิ และข้อมูลไบนารีอย่างถูกต้อง

ทำงานในเบราว์เซอร์ของคุณ ไม่ต้องสมัคร

ประเภทข้อมูลนำเข้า
ทิศทาง

วิธีใช้งาน

  1. เลือก Text หรือ File ที่ด้านบน
  2. สำหรับข้อความ ให้เลือกทิศทางแล้วพิมพ์หรือวาง ผลลัพธ์จะอัปเดตขณะพิมพ์
  3. หากต้องการเข้ารหัสไฟล์ ให้เลือกหรือลากไฟล์มาวาง (สูงสุด 10 MB) เลือก “แสดงผลเป็น data URL” หากต้องการฝังใน HTML หรือ CSS
  4. หากต้องการแปลง 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 ข้อความที่วางไม่มีขีดจำกัดตายตัว แต่ข้อมูลขนาดใหญ่มาก (หลายสิบเมกะไบต์) อาจทำให้หน้าเว็บทำงานช้า โดยเฉพาะบนโทรศัพท์

ความเป็นส่วนตัว

การเข้ารหัสและถอดรหัสทำงานในเบราว์เซอร์ของคุณ ข้อความและไฟล์จะไม่ถูกอัปโหลดหรือจัดเก็บ และเนื้อหาจะไม่ถูกรวมไว้ในข้อมูลวิเคราะห์ ดาวน์โหลดไฟล์ไปยังอุปกรณ์ของคุณโดยตรง