ตัวแปลง Base64 เป็นไฟล์

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

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

วิธีใช้งาน

  1. วางสตริง Base64 หรือ data URI แบบเต็มลงในช่องอินพุต ช่องว่างและการขึ้นบรรทัดใหม่ไม่มีผลต่อการถอดรหัส
  2. ตรวจสอบชนิดไฟล์ที่ตรวจพบและขนาดไฟล์ รูปภาพ PDF เสียง วิดีโอ และข้อความจะแสดงเป็นตัวอย่าง
  3. กด “ดาวน์โหลด” ไฟล์จะถูกบันทึกด้วยชื่อและนามสกุลที่ตรงกับชนิดที่ตรวจพบ

วิธีตรวจหาชนิดไฟล์

ข้อความ Base64 เก็บไบต์ ไม่ได้เก็บชื่อไฟล์ หากคุณไม่ได้วาง data URI ที่มีชนิด MIME ก็ไม่มีส่วนใดในสตริงที่บอกว่าข้อมูลเป็น PDF, ไฟล์ ZIP หรือไฟล์เสียง เครื่องมือจึงถอดรหัสข้อมูลแล้วตรวจดูไบต์แรก ๆ ซึ่งเป็นลายเซ็นไฟล์หรือ “magic bytes” ที่รูปแบบไฟล์ส่วนใหญ่วางไว้ที่ตำแหน่งเริ่มต้นสุด เนื่องจากไบต์เหล่านี้คงที่ ข้อความ Base64 ของแต่ละรูปแบบจึงขึ้นต้นในลักษณะที่จดจำได้เช่นกัน

รูปแบบไบต์แรกBase64 ขึ้นต้นด้วย
PDF%PDFJVBER
PNG89 50 4E 47iVBORw0KGgo
JPEGFF D8 FF/9j/
GIFGIF8R0lGOD
ZIP (รวมถึง DOCX, XLSX, JAR)PK 03 04UEsDB
MP3 ที่มีแท็ก ID3ID3SUQz
WAV, WebP, AVI (RIFF)RIFFUklGR

เมื่อไฟล์ที่ถอดรหัสแล้วเปิดไม่ได้

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

  • อินพุตถูกตัดทอน ไฟล์บันทึก เทอร์มินัล เซลล์ในสเปรดชีต และแอปแชตมักตัดสตริงที่ยาว ข้อความที่หายไปตอนท้ายทำให้ได้ไฟล์ที่สั้นเกินไป และรูปแบบไฟล์ส่วนใหญ่จะเปิดไม่ได้ หากทราบขนาดต้นฉบับ ให้เปรียบเทียบกับขนาดหลังถอดรหัส
  • มีอักขระเกินมา เครื่องหมายคำพูด จุลภาค หรือชื่อฟิลด์ที่ติดมาพร้อมค่า รวมถึงลำดับหลีก (escape sequence) อย่าง \/ และ \n จากสตริง JSON ไม่ใช่ส่วนหนึ่งของ Base64 ให้คัดลอกเฉพาะตัวค่าเท่านั้น
  • เป็นการเข้ารหัสหรือรูปแบบอื่น เลขฐานสิบหก, Base32, Base85 หรือชุดตัวอักษรแบบกำหนดเองอาจดูคล้ายกันเมื่อมองผ่าน ๆ แต่จะกลายเป็นข้อมูลขยะเมื่อถอดรหัสแบบ Base64 เครื่องมือ ตรวจหาการเข้ารหัส จะลองถอดรหัสด้วยทุกวิธีและแสดงว่าวิธีใดตรงกัน
  • ไม่ใช่ไฟล์เลย หากผลลัพธ์ถูกตรวจพบว่าเป็นข้อความธรรมดา แสดงว่าสตริงนั้นเป็น Base64 ของข้อความ เช่น JSON, โทเค็น หรือ Base64 อีกชั้นหนึ่ง ให้อ่านด้วย ตัวถอดรหัส Base64 และถอดรหัสอีกครั้งหากผลลัพธ์ยังเป็น Base64

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

ถอดรหัส Base64 เป็นไฟล์ด้วยโค้ด

# Python
import base64
with open('output.bin', 'wb') as f:
    f.write(base64.b64decode(data))

// Node.js
fs.writeFileSync('output.bin', Buffer.from(data, 'base64'));

# Linux
base64 -d input.txt > output.bin

# macOS
base64 -D -i input.txt -o output.bin

# Windows PowerShell
[IO.File]::WriteAllBytes("C:\files\output.bin", [Convert]::FromBase64String((Get-Content input.txt -Raw)))

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

ตรวจหาไฟล์ชนิดใดได้บ้าง

รูปแบบทั่วไปที่มีลายเซ็นชัดเจน ได้แก่ PDF, ไฟล์บีบอัด ZIP, GZIP, 7z และ RAR, รูปภาพ PNG, JPEG, GIF, WebP และอื่น ๆ, ไฟล์เสียง MP3, WAV, OGG, FLAC และ M4A, วิดีโอ MP4 และ WebM, ฟอนต์ WOFF, WOFF2, TTF และ OTF, WebAssembly และอื่น ๆ อีกมาก รวมถึงรู้จัก JSON, XML, HTML และข้อความธรรมดาด้วย รูปแบบที่ไม่มีลายเซ็นจะระบุชนิดไม่ได้ หากคุณทราบชนิดที่แท้จริง ให้เปลี่ยนชื่อไฟล์ที่ดาวน์โหลดมา

ทำไมไฟล์ Word หรือ Excel ของฉันจึงถูกตรวจพบว่าเป็น ZIP

ไฟล์ DOCX, XLSX และ PPTX เช่นเดียวกับ EPUB และ JAR เป็นไฟล์ ZIP ที่มีโครงสร้างโฟลเดอร์เฉพาะอยู่ภายใน และขึ้นต้นด้วย magic bytes เดียวกับไฟล์ ZIP ทั่วไป ไบต์ที่ถอดรหัสได้นั้นถูกต้องแล้ว เพียงเปลี่ยนชื่อไฟล์ที่ดาวน์โหลดเป็น .docx, .xlsx หรือนามสกุลที่ต้องการ ไฟล์ก็จะเปิดได้ตามปกติ

วาง data URI ได้หรือไม่
ได้ วางสตริงแบบเต็มรวมส่วนนำหน้า data:...;base64, หรือวางเฉพาะส่วนที่เป็น Base64 ก็ได้ ไม่ว่าแบบใด ชนิดไฟล์จะถูกตรวจสอบเทียบกับไบต์ที่ถอดรหัสได้เสมอ
ทำไมไฟล์ที่ถอดรหัสแล้วจึงเล็กกว่าข้อความ Base64

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

ข้อมูลของฉันถูกส่งไปที่ใดหรือไม่

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