ถอดรหัส Base64

วางสตริง Base64 เพื่อรับข้อความหรือไบต์ต้นฉบับกลับคืนมา เครื่องมือจัดการการขึ้นบรรทัดใหม่ อักขระแบบปลอดภัยสำหรับ URL แพดดิงที่ขาดหาย และส่วนนำหน้า data: ให้โดยอัตโนมัติ และข้อความแจ้งข้อผิดพลาดจะชี้ไปยังอักขระที่มีปัญหาได้ตรงตำแหน่ง

ทำงานภายในเบราว์เซอร์ของคุณทั้งหมด ไม่มีการอัปโหลดข้อมูลใด ๆ

วิธีใช้งาน

  1. วางสตริง Base64 ลงในช่องอินพุต หรือคลิก “เปิดไฟล์” เพื่อโหลดไฟล์ที่มีข้อความ Base64
  2. คง “รูปแบบเอาต์พุต” เป็น “ข้อความ” แล้วเลือก “การเข้ารหัสอักขระ” (ค่าเริ่มต้นคือ UTF-8) หรือเปลี่ยนเป็น “เลขฐานสิบหก” สำหรับข้อมูลไบนารี
  3. หากถอดรหัสไม่สำเร็จ ให้อ่านข้อความแจ้งข้อผิดพลาด ซึ่งจะระบุตำแหน่งของอักขระที่ไม่ถูกต้องตัวแรก
  4. กด “คัดลอก” หรือ “ดาวน์โหลด” เพื่อรับผลลัพธ์ที่ถอดรหัสแล้ว

อินพุตที่ตัวถอดรหัสรองรับ

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

  • ช่องว่างและการขึ้นบรรทัดใหม่ จะถูกละเว้น จึงวางเนื้อหา MIME ที่ตัดบรรทัดไว้และบล็อก PEM ได้ทันที แต่ควรลบบรรทัด -----BEGIN และ -----END ออกก่อน เพราะตัวอักษรและขีดในบรรทัดเหล่านั้นเป็นอักขระ Base64 ที่ถูกต้อง และจะถูกถอดรหัสเป็นข้อมูลไปด้วย
  • อินพุตแบบปลอดภัยสำหรับ URL ที่ใช้ - และ _ ถอดรหัสได้เหมือนกับ Base64 มาตรฐานที่ใช้ + และ /
  • แพดดิงที่ขาดหาย ไม่เป็นปัญหา เครื่องมือจะปฏิเสธเฉพาะความยาว 4n + 1 อักขระ เพราะอักขระที่เหลือเพียงตัวเดียวไม่สามารถประกอบเป็นไบต์ได้ ซึ่งมักหมายความว่าสตริงถูกตัดขาด
  • Data URI ก็ใช้ได้เช่นกัน ส่วนนำหน้า data:...;base64, จะถูกลบออกก่อนถอดรหัส

เอาต์พุตแบบข้อความหรือไบนารี

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

Base64 ขึ้นต้นด้วยเนื้อหาหลังถอดรหัส
iVBORw0KGgoรูปภาพ PNG
/9j/รูปภาพ JPEG
R0lGODรูปภาพ GIF
JVBERi0เอกสาร PDF
UEsDBไฟล์บีบอัด ZIP รวมถึง DOCX, XLSX และ JAR
H4sIข้อมูลที่บีบอัดด้วย gzip
eyJออบเจ็กต์ JSON เช่น ส่วนหัวของ JWT

ทำไมข้อความที่ถอดรหัสแล้วจึงอ่านไม่ออก

  • ชุดอักขระไม่ถูกต้อง ข้อความ UTF-8 ที่ถูกอ่านเป็น Windows-1252 จะทำให้ é กลายเป็น é และข้อความ GBK หรือ Shift_JIS ที่ถูกอ่านเป็น UTF-8 จะแสดงอักขระแทนที่ (�) ให้เลือกชุดอักขระที่ใช้เขียนข้อความนั้น
  • ข้อมูลไบนารี สัญลักษณ์สุ่มที่มีส่วนที่อ่านออกปะปนอยู่บ้าง เช่น PNG หรือ PK ใกล้ส่วนต้น แสดงว่าเนื้อหาเป็นไฟล์ ไม่ใช่ข้อความ
  • ข้อมูลที่บีบอัดหรือเข้ารหัสลับ สตรีม gzip, Protocol Buffers และข้อมูลที่เข้ารหัสลับถอดรหัสได้ถูกต้อง แต่ไม่ใช่ข้อความ เอาต์พุตแบบเลขฐานสิบหกจะแสดงให้เห็นว่าข้อมูลจริงคืออะไร
  • การเข้ารหัสซ้ำสองชั้น หากเอาต์พุตยังเป็น Base64 อยู่ ให้วางกลับลงในช่องอินพุตแล้วถอดรหัสอีกครั้ง

การถอดรหัส Base64 ในโค้ด

# Python
base64.b64decode(s).decode('utf-8')

// Node.js (รับอินพุตแบบปลอดภัยสำหรับ URL ได้ด้วย)
Buffer.from(s, 'base64').toString('utf8')

// เบราว์เซอร์: atob() คืนค่าอักขระหนึ่งตัวต่อหนึ่งไบต์ จึงต้องถอดรหัส UTF-8 ต่ออีกขั้น
new TextDecoder().decode(Uint8Array.from(atob(s), c => c.charCodeAt(0)))

# เชลล์บน Linux และ macOS
echo 'SGVsbG8=' | base64 --decode

ข้อกำหนด

ชุดตัวอักษรA-Z a-z 0-9 + /
ขนาดเอาต์พุต4 อักขระต่อ 3 ไบต์ (ประมาณ 133%)
แพดดิงเติม = จนความยาวเป็นพหุคูณของ 4
มาตรฐานRFC 4648 หัวข้อ 4
แยกตัวพิมพ์เล็ก-ใหญ่ใช่

ตัวอย่าง

อินพุต (UTF-8)เอาต์พุต
Hello, World!SGVsbG8sIFdvcmxkIQ==
Base64.isQmFzZTY0Lmlz
你好5L2g5aW9

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

ทำไมจึงเกิดข้อผิดพลาดว่ามีอักขระไม่ถูกต้อง
อินพุตมีอักขระที่อยู่นอกชุดตัวอักษร Base64 เช่น เครื่องหมายคำพูด แบ็กสแลช หรือรหัสเปอร์เซ็นต์อย่าง %2B และ %3D ที่คัดลอกมาจาก URL ให้ลบเครื่องหมายคำพูดออก หรือถอดรหัส URL ของสตริงก่อน ข้อความแจ้งข้อผิดพลาดจะแสดงตำแหน่งของอักขระที่มีปัญหาตัวแรก
ถอดรหัส Base64 ที่ไม่มีแพดดิงได้หรือไม่
ได้ ตัวถอดรหัสไม่จำเป็นต้องมีเครื่องหมาย = ต่อท้าย สตริงที่ไม่มีแพดดิงจาก JWT, URL และ API จึงถอดรหัสได้ตามปกติ
ทำไมผลลัพธ์จึงผิดหลังจากคัดลอก Base64 มาจาก URL
เมื่อใส่ Base64 ลงในสตริงคิวรีโดยไม่ได้เข้ารหัสแบบเปอร์เซ็นต์ การถอดรหัสข้อมูลฟอร์มมักเปลี่ยน + ทุกตัวเป็นช่องว่าง และเนื่องจากเครื่องมือนี้ละเว้นช่องว่าง อักขระเหล่านั้นจึงหายไป ให้แทนที่ช่องว่างด้วย + ก่อนถอดรหัส และใช้ Base64URL สำหรับค่าที่ส่งผ่าน URL
จะถอดรหัส Base64 เป็นรูปภาพหรือไฟล์ได้อย่างไร
ใช้ แปลง Base64 เป็นรูปภาพ เพื่อดูตัวอย่างและดาวน์โหลดรูปภาพ หรือใช้ แปลง Base64 เป็นไฟล์ สำหรับ PDF ไฟล์บีบอัด ไฟล์เสียง และไฟล์อื่น ๆ ทั้งสองเครื่องมือตรวจหาชนิดไฟล์จากไบต์แรก ๆ ของข้อมูล
Base64 ของฉันถูกส่งไปยังเซิร์ฟเวอร์หรือไม่

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