แปลงฟรี

ตัวเข้ารหัส Base64 / เครื่องถอดรหัส

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

เกี่ยวกับเครื่องมือนี้

Base64 เป็นรูปแบบการเข้ารหัสที่แสดงข้อมูลไบนารีเป็นข้อความ ASCII โดยใช้อักขระที่พิมพ์ได้ 64 ตัว: A-Z, a-z, 0-9, บวก (+) และเครื่องหมายทับ (/) โดยมีเครื่องหมายเท่ากับ (=) ใช้สำหรับการขยาย เดิมทีรูปแบบนี้ได้รับการออกแบบมาเพื่อให้ไฟล์แนบแบบไบนารีสามารถอยู่รอดได้ด้วยการส่งอีเมลแบบ 7 บิต แต่ปัจจุบันได้ขยายไปสู่การใช้งานหลายสิบครั้ง: URL ข้อมูลในรูปแบบ HTML, JSON ที่มีข้อมูลรูปภาพ, เพย์โหลด JWT, ส่วนหัวการตรวจสอบสิทธิ์พื้นฐาน และโปรโตคอลแบบข้อความใดๆ ที่จำเป็นต้องมีไบต์

การเข้ารหัสใช้อินพุต 3 ไบต์และสร้างเอาต์พุตอักขระ ASCII 4 ตัว ดังนั้นเอาต์พุตจึงยาวกว่าอินพุต 33% ซึ่งเป็นต้นทุนในการปรับไบนารี่ให้อยู่ในรูปแบบที่ปลอดภัยสำหรับข้อความ การถอดรหัสจะกลับกระบวนการอย่างแน่นอน โดยกู้คืนไบต์ต้นฉบับจากข้อความที่เข้ารหัส

เครื่องมือนี้จัดการได้ทั้งสองทิศทาง โหมดเข้ารหัสใช้การป้อนข้อความ (หรือไฟล์ไบนารีผ่านการอัปโหลด) และสร้างข้อความ base64 โหมดถอดรหัสใช้ข้อความ base64 และสร้างข้อความต้นฉบับหรือไบนารีที่ดาวน์โหลดได้ รูปแบบที่ปลอดภัยของ URL (การใช้ - และ _ แทนที่ + และ /) ได้รับการสนับสนุนสำหรับโทเค็นและตัวระบุ

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

Base64 เป็นวิธีมาตรฐานในการฝังข้อมูลไบนารีในบริบทที่เป็นข้อความเท่านั้น รูปภาพอินไลน์ใน HTML ใช้ URL ข้อมูล (data:image/png;base64,...) ดังนั้นไอคอนขนาดเล็กจึงสามารถจัดส่งพร้อมกับเพจได้โดยไม่ต้องขอแยกต่างหาก เพย์โหลด JSON ที่มีรูปภาพ ใบรับรอง หรือลายเซ็นจะเข้ารหัสเป็นสตริง base64 โทเค็น JWT เป็นกลุ่มที่เข้ารหัส base64 สามส่วนคั่นด้วยจุด

Base64 ยังทำให้การจัดการอักขระเป็นมาตรฐานสำหรับโปรโตคอลที่จัดการไบนารี 8 บิตในทางที่ผิด ส่วนหัวการตรวจสอบสิทธิ์ (การตรวจสอบสิทธิ์พื้นฐานใช้ base64) ไฟล์แนบอีเมล ไฟล์การกำหนดค่าที่มีคีย์ และ API จำนวนมากต้องใช้ base64 เนื่องจากไบนารีไม่สามารถผ่านไปป์ไลน์ได้อย่างน่าเชื่อถือ

วิธีใช้งาน

วางข้อมูล เลือกทิศทาง

  1. เลือกเข้ารหัสหรือถอดรหัส: การเข้ารหัสสร้างข้อความ base64 จากไบนารีหรือการป้อนข้อความ การถอดรหัสจะกลับกระบวนการ
  2. เพิ่มอินพุต: สำหรับการเข้ารหัส ให้วางข้อความหรืออัปโหลดไฟล์ไบนารี สำหรับการถอดรหัส ให้วางข้อความ base64 เครื่องมือจะตรวจจับรูปแบบที่ปลอดภัยของ URL โดยอัตโนมัติ
  3. แปลง: เบราว์เซอร์ใช้ btoa สำหรับการเข้ารหัสและ atob สำหรับการถอดรหัส (พร้อมการจัดการ UTF-8 สำหรับข้อความที่ไม่ใช่ ASCII) ผลลัพธ์มีความถูกต้องและแน่นอน
  4. คัดลอกหรือดาวน์โหลด: ข้อความที่เข้ารหัสสามารถฝังอยู่ใน URL, JSON, URL ข้อมูล HTML หรือโปรโตคอลแบบข้อความใดๆ ถอดรหัสการดาวน์โหลดไบนารีเป็นไฟล์โดยคาดเดานามสกุลที่เหมาะสมตามประเภทไฟล์ที่ตรวจพบ

กรณีการใช้งานทั่วไป

รายละเอียดทางเทคนิค

Base64 แมปอินพุตทุกๆ 6 บิตกับอักขระเอาต์พุตตัวใดตัวหนึ่งใน 64 ตัว ไบต์อินพุตสามไบต์ (24 บิต) สร้างอักขระเอาต์พุตสี่ตัว เมื่อความยาวอินพุตไม่เป็นทวีคูณของ 3 ตัวเข้ารหัสจะต่อท้ายเครื่องหมายเท่ากับหนึ่งหรือสองตัวเพื่อขยายเอาต์พุตให้เป็นอักขระพหุคูณของ 4 ตัว

URL-safe base64 (กำหนดใน RFC 4648 ส่วนที่ 5) แทนที่ + ด้วย - และ / ด้วย _ เพื่อสร้างสตริงที่ปลอดภัยสำหรับใช้ใน URL และชื่อไฟล์โดยไม่ต้องหลบหนีเพิ่มเติม บางครั้งการเติมเครื่องหมายเท่ากับจะถูกละเว้นในบริบทที่ปลอดภัยของ URL โดยทั่วไปแล้วตัวถอดรหัสจะยอมรับทั้งสองรูปแบบ

btoa และ atob ของ JavaScript จัดการ ASCII โดยตรง แต่ล้มเหลวในสตริงที่ไม่ใช่ ASCII สำหรับข้อความ UTF-8 ตัวแปลงจะใช้ TextEncoder/TextDecoder เพื่อแปลงระหว่างข้อความและไบนารี จากนั้น base64 จะเข้ารหัสไบนารี วิธีนี้จะจัดการอีโมจิ อักขระเน้นเสียง และสคริปต์ที่ไม่ใช่ภาษาละตินได้อย่างถูกต้อง

แนวทางปฏิบัติที่ดีที่สุด

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

การเข้ารหัส Base64 ใช้ทำอะไร?
Base64 แปลงข้อมูลไบนารีเป็นข้อความ ASCII การใช้งานทั่วไป ได้แก่ การฝังรูปภาพใน HTML (URI ข้อมูล) การเข้ารหัสไฟล์แนบอีเมล การส่งข้อมูลไบนารีใน JSON API และการจัดเก็บไบนารี blobs ในฐานข้อมูลแบบข้อความ
การเข้ารหัส Base64 เข้ารหัสข้อมูลของฉันหรือไม่
ไม่ Base64 เป็นการเข้ารหัส ไม่ใช่การเข้ารหัส ใครๆ ก็สามารถถอดรหัสสตริง Base64 ได้ ได้รับการออกแบบมาเพื่อการขนส่งข้อมูลที่ปลอดภัย ไม่ใช่การรักษาความปลอดภัย ใช้การเข้ารหัสจริง (AES, RSA) สำหรับข้อมูลที่ละเอียดอ่อน
เหตุใด Base64 จึงเพิ่มขนาดไฟล์
Base64 แทนอินพุตทุกๆ 3 ไบต์เป็นอักขระ ASCII 4 ตัว ส่งผลให้ขนาดเพิ่มขึ้นประมาณ 33% นี่เป็นข้อเสียของการฝังข้อมูลไบนารีในรูปแบบข้อความได้อย่างปลอดภัย
ฉันสามารถเข้ารหัสรูปภาพเป็น Base64 ได้หรือไม่
ใช่. อัปโหลดไฟล์รูปภาพแล้วเครื่องมือจะสร้างสตริง Base64 ที่คุณสามารถใช้เป็น URI ข้อมูล (data:image/png;base64,...) ใน HTML หรือ CSS
โทเค็น JWT เป็น base64 หรือไม่
ใช่ — JWT ประกอบด้วยสามส่วนที่เข้ารหัส base64url คั่นด้วยจุด อันแรกคือส่วนหัว ส่วนอันที่สองคือเพย์โหลด ส่วนอันที่สามคือลายเซ็น
ข้อมูลของฉันถูกอัพโหลดไปยังเซิร์ฟเวอร์หรือไม่?
ไม่ การเข้ารหัสและถอดรหัสเกิดขึ้นในเบราว์เซอร์ของคุณโดยใช้ btoa, atob, TextEncoder และ TextDecoder
ขนาดสูงสุดคือเท่าไร?
สูงสุด 50 เมกะไบต์ หน่วยความจำเบราว์เซอร์จำกัดขนาดที่ใช้งานได้จริงสำหรับอินพุตขนาดใหญ่มาก
เหตุใดเอาต์พุตที่ถอดรหัสของฉันจึงดูเหมือนขยะ
เป็นไปได้มากว่าแหล่งที่มานั้นเป็นไบนารี ไม่ใช่ข้อความ สลับไปที่โหมดดาวน์โหลดไฟล์เพื่อรับไบนารี่ หรือตรวจสอบว่าอินพุตเป็นข้อความที่เข้ารหัส base64 แทนที่จะเป็นไบนารี