ข้ามไปที่เนื้อหา

A–Z a–z 0–9 + / = · base64url

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

Base64 เขียนไบต์เป็นข้อความด้วยอักขระที่พิมพ์ได้ 64 ตัว: 5 ไบต์ของ "Hello" กลายเป็น SGVsbG8= พิมพ์ข้อความหรือเลือกไฟล์เพื่อเข้ารหัส หรือวาง Base64 เพื่อแปลงกลับเป็นข้อความหรือไฟล์ดาวน์โหลด

ทุกอย่างทำงานในแท็บนี้และไม่มีการอัปโหลดใด ๆ Base64 เป็นการเข้ารหัสแบบแทนค่า ไม่ใช่การเข้ารหัสลับ: ใครก็แปลงกลับได้

Scanned by NortonTM Safe Web

ภาพรวมโดยสรุป

ราคา
ไม่มีค่าใช้จ่าย
บัญชี
ไม่ต้องมี
มาตรฐาน
RFC 4648 (Base64 และ Base64url), RFC 2045 (MIME), RFC 2397 (data URI)
ขนาดที่เปลี่ยน
อักขระ 4 ตัวต่อทุก 3 ไบต์
ขีดจำกัด
10 MB สำหรับข้อความหรือไฟล์
การอัปโหลด
ไม่มี — ข้อความและไฟล์อยู่ในแท็บเบราว์เซอร์ของคุณ

ตัวอย่าง Base64

ทุกค่าด้านล่างสร้างจากตัวเข้ารหัสในหน้านี้ ข้อความจะถูกเข้ารหัสเป็น UTF-8 ก่อน

ข้อความใน Base64 และ Base64url
ข้อความBase64Base64url ไม่มี paddingขนาด UTF-8
HelloSGVsbG8=SGVsbG85 B
Hello, World!SGVsbG8sIFdvcmxkIQ==SGVsbG8sIFdvcmxkIQ13 B
GrüßeR3LDvMOfZQ==R3LDvMOfZQ7 B
€4oKs4oKs3 B
FB FF+/8=-_82 B
เวกเตอร์ทดสอบจาก RFC 4648
ข้อมูลนำเข้าBase64ความยาวอักขระ padding
fZg==42
foZm8=41
fooZm9v40
foobZm9vYg==82
foobaZm9vYmE=81
foobarZm9vYmFy80

วิธีเข้ารหัสและถอดรหัส Base64

1

เลือกทิศทาง

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

2

ใส่ข้อมูล

พิมพ์หรือวางข้อความ หรือวางไฟล์ขนาดไม่เกิน 10 MB สำหรับการถอดรหัส ให้วาง Base64 แบบมาตรฐานหรือแบบ URL-safe จะมีหรือไม่มี padding = ก็ได้ หรือวาง data URI

3

คัดลอกผลลัพธ์

คัดลอกหรือดาวน์โหลดผลลัพธ์ หากไบต์ที่ถอดได้ไม่ใช่ข้อความ หน้านี้จะแสดงไบต์แรก ๆ เป็นเลขฐานสิบหก ระบุชนิดไฟล์เมื่อทราบ และให้คุณบันทึกไบต์เป็นไฟล์ได้

Base64 ทำงานอย่างไร

Base64 (RFC 4648) แบ่งข้อมูลนำเข้าเป็นกลุ่มละ 3 ไบต์ ซึ่งเท่ากับ 24 บิต และเขียนแต่ละกลุ่มเป็นอักขระ 4 ตัว ตัวละ 6 บิต จากชุดอักขระ 64 ตัว: A–Z, a–z, 0–9, + และ / ผลลัพธ์จึงใหญ่กว่าข้อมูลนำเข้าประมาณหนึ่งในสาม เมื่อข้อมูลนำเข้าไม่ใช่จำนวนเท่าของ 3 ไบต์ เครื่องหมาย = จะเติมท้ายให้ครบเป็นจำนวนเท่าของอักขระ 4 ตัว ดังนั้น 5 ไบต์ของ Hello ได้อักขระ 8 ตัว ลงท้ายด้วย = หนึ่งตัว

Base64url ซึ่งกำหนดไว้ใน RFC เดียวกัน แทน + ด้วย - และ / ด้วย _ เพื่อให้ข้อความปลอดภัยใน URL หรือชื่อไฟล์ และรูปแบบอย่าง JWT จะตัด padding = ออก หน้านี้อ่านได้ทั้งสองชุดอักขระ จะมีหรือไม่มี padding ก็ได้ และข้ามช่องว่างกับตัวแบ่งบรรทัด ข้อความจะถูกแปลงเป็น UTF-8 ก่อน ดังนั้น € กลายเป็น 3 ไบต์ E2 82 AC และเป็น 4oKs ใน Base64 ขีดจำกัดคือ 10 MB สำหรับข้อความหรือไฟล์

คำถามเกี่ยวกับ Base64

เข้ารหัสข้อความเป็น Base64 ได้อย่างไร

พิมพ์หรือวางข้อความในโหมดเข้ารหัส Base64 จะปรากฏขณะที่คุณพิมพ์: Hello ได้ SGVsbG8= ข้อความจะถูกเขียนเป็น UTF-8 ก่อน อักขระนอก ASCII จึงใช้มากกว่าหนึ่งไบต์: € เป็น 3 ไบต์และได้ 4oKs

Base64 กับ Base64url ต่างกันอย่างไร

Base64url สลับอักขระสองตัว: - แทน + และ _ แทน / ไบต์ FB FF เป็น +/8= ใน Base64 และ -_8= ใน Base64url รูปแบบ URL-safe ออกแบบมาสำหรับ URL ชื่อไฟล์ และ JWT และมักตัด padding = ออก

ทำไม Base64 จึงลงท้ายด้วยเครื่องหมาย =

นั่นคือ padding Base64 ทำงานเป็นกลุ่มละ 3 ไบต์และ 4 อักขระ ถ้ากลุ่มสุดท้ายมี 1 ไบต์ จะเติม = สองตัว: f ได้ Zg== ถ้ามี 2 ไบต์ จะเติม = หนึ่งตัว: fo ได้ Zm8= จำนวนที่เป็นเท่าของ 3 ไบต์ไม่ต้องเติม: foo ได้ Zm9v

Base64 คือการเข้ารหัสลับหรือไม่

ไม่ใช่ Base64 เป็นการเข้ารหัสแบบแทนค่าที่ย้อนกลับได้และไม่มีกุญแจ ใครก็ถอดได้ และไม่ได้ปกป้องข้อมูล มันทำให้ข้อมูลไบนารีวางในข้อความ เช่น อีเมล JSON XML หรือ data URI ได้อย่างปลอดภัย

Base64 ทำให้ข้อมูลของฉันใหญ่ขึ้นเท่าไร

ใหญ่ขึ้นประมาณหนึ่งในสาม: ทุก 3 ไบต์กลายเป็น 4 อักขระ ดังนั้น 3000 ไบต์ได้ 4000 อักขระ การขึ้นบรรทัดใหม่ทุก 76 อักขระ (MIME, RFC 2045) หรือทุก 64 อักขระ (PEM, RFC 7468) เพิ่มขึ้นอีกเล็กน้อย

ทำไมการถอดรหัสจึงบอกว่าไบต์ไม่ใช่ข้อความ UTF-8 ที่ถูกต้อง

Base64 เองไม่มีปัญหา แต่ไบต์ข้างในไม่ใช่ข้อความ อาจเป็นรูปภาพ ไฟล์บีบอัด หรือรูปแบบไบนารีอื่น หน้านี้จะแสดง 64 ไบต์แรกเป็นเลขฐานสิบหก ระบุชนิดไฟล์เมื่อทราบ และให้ดาวน์โหลดไบต์ได้