A–Z a–z 0–9 + / = · base64url
ตัวเข้ารหัสและถอดรหัส Base64
Base64 เขียนไบต์เป็นข้อความด้วยอักขระที่พิมพ์ได้ 64 ตัว: 5 ไบต์ของ "Hello" กลายเป็น SGVsbG8= พิมพ์ข้อความหรือเลือกไฟล์เพื่อเข้ารหัส หรือวาง Base64 เพื่อแปลงกลับเป็นข้อความหรือไฟล์ดาวน์โหลด
- Hello = SGVsbG8=
- Hello = SGVsbG8
- FB FF = +/8= = -_8=
ทุกอย่างทำงานในแท็บนี้และไม่มีการอัปโหลดใด ๆ 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 ไม่มี padding | ขนาด UTF-8 |
|---|---|---|---|
| Hello | SGVsbG8= | SGVsbG8 | 5 B |
| Hello, World! | SGVsbG8sIFdvcmxkIQ== | SGVsbG8sIFdvcmxkIQ | 13 B |
| Grüße | R3LDvMOfZQ== | R3LDvMOfZQ | 7 B |
| € | 4oKs | 4oKs | 3 B |
| FB FF | +/8= | -_8 | 2 B |
| ข้อมูลนำเข้า | Base64 | ความยาว | อักขระ padding |
|---|---|---|---|
| f | Zg== | 4 | 2 |
| fo | Zm8= | 4 | 1 |
| foo | Zm9v | 4 | 0 |
| foob | Zm9vYg== | 8 | 2 |
| fooba | Zm9vYmE= | 8 | 1 |
| foobar | Zm9vYmFy | 8 | 0 |
วิธีเข้ารหัสและถอดรหัส Base64
เลือกทิศทาง
เลือกเข้ารหัสเพื่อแปลงข้อความหรือไฟล์เป็น Base64 หรือถอดรหัสเพื่อแปลง Base64 กลับเป็นต้นฉบับ ปุ่มสลับจะนำผลลัพธ์ไปเป็นข้อมูลนำเข้าของอีกทิศทาง
ใส่ข้อมูล
พิมพ์หรือวางข้อความ หรือวางไฟล์ขนาดไม่เกิน 10 MB สำหรับการถอดรหัส ให้วาง Base64 แบบมาตรฐานหรือแบบ URL-safe จะมีหรือไม่มี padding = ก็ได้ หรือวาง data URI
คัดลอกผลลัพธ์
คัดลอกหรือดาวน์โหลดผลลัพธ์ หากไบต์ที่ถอดได้ไม่ใช่ข้อความ หน้านี้จะแสดงไบต์แรก ๆ เป็นเลขฐานสิบหก ระบุชนิดไฟล์เมื่อทราบ และให้คุณบันทึกไบต์เป็นไฟล์ได้
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 ไบต์แรกเป็นเลขฐานสิบหก ระบุชนิดไฟล์เมื่อทราบ และให้ดาวน์โหลดไบต์ได้