ToolDeck

ถอดรหัส Base64 ออนไลน์

ถอดรหัสข้อความที่เข้ารหัส Base64

อินพุต Base64

ข้อความที่ถอดรหัสแล้ว

ประมวลผลในเครื่อง · ปลอดภัยในการวางข้อมูลลับ
เอาต์พุตที่ถอดรหัส...

การถอดรหัส Base64 คืออะไร?

การถอดรหัส Base64 เป็นกระบวนการย้อนกลับของการเข้ารหัส Base64: แปลงสตริง ASCII ที่เข้ารหัส Base64 กลับเป็นข้อมูลไบนารีหรือข้อความต้นฉบับ ทุกๆ 4 อักขระ Base64 ถอดรหัสเป็น 3 ไบต์ของข้อมูลต้นฉบับ ตัวถอดรหัสค้นหาอักขระแต่ละตัวในตัวอักษร Base64, สร้างกลุ่ม 6 บิตต้นฉบับขึ้นใหม่ และประกอบใหม่เป็นไบต์ 8 บิต

ข้อมูลที่เข้ารหัสด้วย Base64 สังเกตได้จากการใช้ตัวอักษรพิมพ์ใหญ่และพิมพ์เล็ก ตัวเลข และ +/ (มาตรฐาน) หรือ -_ (ปลอดภัยสำหรับ URL) มักลงท้ายด้วยอักขระ padding = หนึ่งหรือสองตัว พบได้บ่อยใน JWT token ไฟล์แนบอีเมล data URI การตอบสนองของ API และไฟล์กำหนดค่า — ในทุกที่ที่ต้องฝังข้อมูลไบนารีหรือข้อมูลที่มีโครงสร้างลงในบริบทที่มีเฉพาะข้อความ

ทำไมต้องใช้เครื่องมือนี้?

ตัวถอดรหัสนี้จัดการทั้ง Base64 มาตรฐานและ URL-safe แก้ไขการเติมที่หายไปโดยอัตโนมัติ และถอดรหัสทั้งหมดในเบราว์เซอร์ของคุณโดยไม่ส่งข้อมูลไปยังเซิร์ฟเวอร์

แก้ไขการเติมอัตโนมัติ
แหล่งที่มาหลายแห่งสร้าง Base64 โดยไม่มีอักขระ = ท้าย เครื่องมือนี้คำนวณและเพิ่มการเติมที่หายไปโดยอัตโนมัติก่อนถอดรหัส ป้องกันข้อยกเว้น InvalidCharacterError
🛡️
รองรับทั้งสองตัวแปร
ตรวจจับและจัดการทั้ง Base64 มาตรฐาน (+/) และ URL-safe Base64 (-_) โดยอัตโนมัติ เพื่อให้คุณวาง token จากแหล่งใดก็ได้โดยไม่ต้องแปลงด้วยตนเอง
🔒
ทำงานฝั่งไคลเอนต์ทั้งหมด
การถอดรหัสเกิดขึ้นในเบราว์เซอร์ของคุณในเครื่องโดยใช้ API atob ดั้งเดิม ข้อมูลของคุณ — ซึ่งอาจมีความลับหรือเนื้อหาที่ละเอียดอ่อน — ไม่เคยออกจากอุปกรณ์ของคุณ
🌐
ผลลัพธ์ Unicode
ถอดรหัสข้อความที่เข้ารหัส UTF-8 กลับเป็น Unicode เต็มรูปแบบได้อย่างถูกต้อง รวมถึงอักขระหลายไบต์ อีโมจิ และอักษร CJK

วิธีใช้เครื่องมือถอดรหัส Base64 ออนไลน์นี้

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

  1. 1
    วางสตริง Base64 ของคุณ
    คัดลอกสตริงที่เข้ารหัส Base64 จากแหล่งที่มาของคุณ — JWT, การตอบสนอง API, ส่วนหัวของไฟล์แนบอีเมล หรือไฟล์คอนฟิก — แล้ววางลงในช่องป้อนข้อมูล รูปแบบมาตรฐานและ URL-safe จะถูกตรวจจับโดยอัตโนมัติ
  2. 2
    การตรวจจับและซ่อมแซมอัตโนมัติ
    ตัวถอดรหัสระบุว่าอินพุตของคุณใช้ Base64 มาตรฐาน (+/) หรือ URL-safe Base64 (-_) และแก้ไข padding = ที่ขาดหายโดยอัตโนมัติ ไม่จำเป็นต้องทำให้สตริงเป็นมาตรฐานด้วยตนเองก่อนถอดรหัส
  3. 3
    ตรวจสอบผลลัพธ์
    ข้อความที่ถอดรหัสแล้วจะปรากฏในช่องเอาต์พุต หากข้อมูลต้นฉบับเป็นข้อความ UTF-8 จะแสดงเป็นอักขระที่อ่านได้ ข้อมูลไบนารีจะแสดงตามที่เป็น ข้อความแสดงข้อผิดพลาดจะปรากฏขึ้นหากอินพุตมีอักขระที่ไม่ถูกต้องซึ่งไม่สามารถถอดรหัสได้
  4. 4
    คัดลอกหรือใช้ผลลัพธ์
    คลิก คัดลอก เพื่อรับเอาต์พุตที่ถอดรหัสแล้ว หรือใช้งานโดยตรงในเวิร์กโฟลว์ของคุณ ต้องการเข้ารหัสผลลัพธ์ใหม่อีกครั้งไหม? สลับไปที่เครื่องมือ Base64 Encoder ด้วยคลิกเดียว

การถอดรหัสทำงานอย่างไร

อักขระ Base64 แต่ละตัวจะแมปกับค่า 6 บิต (0–63) อักขระต่อเนื่องสี่ตัวให้ 24 บิต ซึ่งถอดรหัสเป็น 3 ไบต์ของข้อมูลต้นฉบับ ตัวอย่างด้านล่างแสดงวิธีที่ "TWFu" ถอดรหัสกลับเป็น "Man":

ตัวอย่าง "Man" → TWFu → "Man"
อักขระดัชนี6 บิต
T19010011
W22010110
F5000101
u46101110

กลุ่ม 6 บิตสี่กลุ่ม (010011 010110 000101 101110) ถูกนำมาต่อกันเป็น 24 บิต จากนั้นแบ่งเป็นไบต์ 8 บิตสามไบต์: 01001101 (M=77), 01100001 (a=97), 01101110 (n=110)

ทำความเข้าใจการเติม

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

ต้นฉบับเข้ารหัสแล้วกฎการเติม
AQQ==1 byte → 2 padding chars
ABQUI=2 bytes → 1 padding char
ABCQUJD3 bytes → no padding needed

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

ตรวจสอบ payload JWT
Token JWT ประกอบด้วยสามส่วนที่เข้ารหัส URL-safe Base64 การถอดรหัสส่วนที่สอง (payload) เปิดเผย claim: รหัสผู้ใช้ บทบาท เวลาหมดอายุ และข้อมูลเมตาอื่นๆ — โดยไม่ต้องใช้คีย์ลายเซ็น
อ่านการตอบสนอง API
API REST มักส่งคืนข้อมูลไบนารี (เนื้อหาไฟล์ ภาพขนาดย่อ วัสดุการเข้ารหัส) ที่เข้ารหัส Base64 ในการตอบสนอง JSON ถอดรหัสฟิลด์เพื่ออ่านข้อมูลต้นฉบับ
ถอดรหัสเนื้อหาอีเมล
เนื้อหาอีเมล MIME และไฟล์แนบถูกเข้ารหัส Base64 การถอดรหัสเปิดเผยเนื้อหาข้อความต้นฉบับหรืออนุญาตให้คุณสร้างไฟล์แนบไบนารีขึ้นมาใหม่
แยกความลับ Kubernetes
Kubernetes เก็บค่าความลับเป็น Base64 ใน YAML manifest การถอดรหัสเปิดเผยรหัสผ่าน token และคีย์จริงที่เก็บในคลัสเตอร์ — มีประโยชน์สำหรับการดีบักและการตรวจสอบ
ดีบักการตั้งค่า
ตัวแปรสภาพแวดล้อมและความลับ pipeline CI/CD มักถูกเข้ารหัส Base64 เพื่อการจัดเก็บที่ปลอดภัยในไฟล์การตั้งค่า YAML หรือ JSON ถอดรหัสเพื่อตรวจสอบค่าจริงระหว่างการดีบัก
ถอดรหัส URI ข้อมูล
URI ข้อมูลฝังสินทรัพย์ที่เข้ารหัส Base64 ลงใน HTML/CSS โดยตรง ถอดรหัสส่วน Base64 เพื่อแยกรูปภาพต้นฉบับ ฟอนต์ หรือทรัพยากรที่ฝังอื่นๆ

ข้อผิดพลาดทั่วไป

นี่คือสาเหตุที่พบบ่อยที่สุดของข้อผิดพลาดการถอดรหัส Base64 ในทางปฏิบัติ:

การเติมที่หายไป
สตริง Base64 ต้องมีความยาวที่เป็นผลคูณของ 4 API และไลบรารี JWT หลายแห่งลบ = ท้ายออกเพื่อความกระชับ เพิ่มการเติมกลับ: จำนวน = ที่หายไปคือ (4 - ความยาว % 4) % 4
อักขระ URL-safe ไม่ได้แปลง
URL-safe Base64 ใช้ - และ _ แทน + และ / หากคุณส่ง URL-safe Base64 ไปยัง atob() หรือ base64.b64decode() โดยตรง มันจะล้มเหลว แทนที่ - → + และ _ → / ก่อนถอดรหัสด้วยไลบรารีมาตรฐานเสมอ
ช่องว่างและตัวแบ่งบรรทัด
ใบรับรอง PEM ข้อมูล MIME และ Base64 ที่คัดลอกวางมักมีตัวแบ่งบรรทัดทุกๆ 76 อักขระ ลบช่องว่างทั้งหมดก่อนถอดรหัสเพื่อหลีกเลี่ยง InvalidCharacterError
ผลลัพธ์ไบนารีเทียบกับข้อความ
Base64 สามารถเข้ารหัสข้อมูลไบนารีใดๆ ไม่ใช่แค่ข้อความ หากข้อมูลต้นฉบับเป็นไฟล์ไบนารี (รูปภาพ, PDF) การถอดรหัสเป็นข้อความ UTF-8 จะสร้างข้อมูลที่ไม่มีความหมาย ใช้วิธีผลลัพธ์ไบนารีที่เหมาะสมสำหรับ payload ที่ไม่ใช่ข้อความ

ตัวอย่างโค้ด

วิธีถอดรหัสสตริง Base64 ในภาษาและสภาพแวดล้อมยอดนิยม:

JavaScript (browser)
// Standard Base64
const decoded = decodeURIComponent(escape(atob(encoded)))

// URL-safe Base64 (restore padding first)
function decodeUrlSafe(str) {
  const padded = str.replace(/-/g, '+').replace(/_/g, '/')
  const pad = padded.length % 4
  return decodeURIComponent(escape(atob(padded + '='.repeat(pad ? 4 - pad : 0))))
}
Node.js
// Standard
const decoded = Buffer.from(encoded, 'base64').toString('utf8')

// URL-safe
const decoded = Buffer.from(encoded, 'base64url').toString('utf8')
Python
import base64

# Standard
decoded = base64.b64decode(encoded).decode('utf-8')

# URL-safe (add padding if missing)
padding = '=' * (-len(encoded) % 4)
decoded = base64.urlsafe_b64decode(encoded + padding).decode('utf-8')
CLI (bash)
# Standard
echo "SGVsbG8sIFdvcmxkIQ==" | base64 -d

# URL-safe (restore + and / first)
echo "SGVsbG8sIFdvcmxkIQ" | tr '-_' '+/' | base64 -d

ตัวถอดรหัส Base64 เทียบกับทางเลือกอื่น

เครื่องมือหลายตัวสามารถถอดรหัส Base64 ได้ แต่แตกต่างกันในด้านความเป็นส่วนตัว ความเร็ว และความสะดวก

เครื่องมือนี้
ทำงานในเบราว์เซอร์ ทันที ส่วนตัว ไม่มีข้อมูลถูกส่งไปยังเซิร์ฟเวอร์ใดๆ รองรับ Base64 มาตรฐานและ URL-safe แก้ไข padding ที่ขาดหายโดยอัตโนมัติ และทำงานได้แม้ไม่มีอินเทอร์เน็ต
CLI (base64 -d)
เร็วสำหรับสคริปต์และไฟล์ขนาดใหญ่ ต้องการเทอร์มินัล ต้องทำการ normalize ด้วยตนเองสำหรับอินพุต URL-safe (-_ → +/)
เครื่องมืออเนกประสงค์
Curl, Postman, DevTools ของเบราว์เซอร์ และตัวแปลงออนไลน์สามารถถอดรหัส Base64 ได้ทั้งหมด ความสะดวกแตกต่างกัน บางตัวส่งข้อมูลไปยังเซิร์ฟเวอร์ระยะไกล

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

ทำไมการถอดรหัสให้อักขระที่ไม่มีความหมาย?
สาเหตุที่พบบ่อยที่สุดคือการถอดรหัสข้อมูลไบนารี (รูปภาพ ไฟล์บีบอัด) เป็นข้อความ UTF-8 — ไบต์ไบนารีมักไม่สร้างลำดับ Unicode ที่ถูกต้อง สาเหตุอื่นคือการถอดรหัส URL-safe Base64 (-_) ด้วยตัวถอดรหัสมาตรฐานที่คาดหวัง +/ ตรวจสอบว่าแหล่งที่มาของคุณใช้ตัวแปรใด
InvalidCharacterError คืออะไร?
ข้อผิดพลาดเบราว์เซอร์จาก atob() นี้เกิดขึ้นเมื่ออินพุตมีอักขระนอกตัวอักษร Base64 เช่น อักขระ URL-safe (- หรือ _) ช่องว่าง ตัวแบ่งบรรทัด หรืออักขระที่ไม่ใช่ ASCII ลบช่องว่างและแปลงอักขระ URL-safe ก่อนเรียก atob()
ฉันจะรู้ได้อย่างไรว่า Base64 ของฉันเป็น URL-safe หรือมาตรฐาน?
มองหาอักขระ - หรือ _: ถ้ามี นั่นคือ URL-safe Base64 Base64 มาตรฐานใช้ + และ / URL-safe Base64 มักละเว้นอักขระเติม = ด้วย Token JWT ใช้ URL-safe Base64 เสมอ
การถอดรหัส Base64 สามารถล้มเหลวอย่างเงียบได้ไหม?
ได้ ตัวถอดรหัสบางตัวเพิกเฉยต่ออักขระที่ไม่ถูกต้องอย่างเงียบๆ แทนที่จะ throw ข้อผิดพลาด ทำให้ผลลัพธ์ไม่ถูกต้อง ตรวจสอบเสมอว่าข้อมูลที่ถอดรหัสตรงกับรูปแบบที่คาดหวัง (JSON, image header เป็นต้น) แทนที่จะสมมติว่าตัวถอดรหัสสำเร็จ
มีจำกัดขนาดสำหรับการถอดรหัส Base64 ไหม?
เครื่องมือที่ใช้เบราว์เซอร์นี้สามารถจัดการสตริง Base64 ได้ถึงสองสามเมกะไบต์ก่อนที่ UI จะช้าลง สำหรับไฟล์ขนาดใหญ่มาก ให้ใช้เครื่องมือ CLI หรือตัวถอดรหัสฝั่งเซิร์ฟเวอร์
ทำไม Base64 ลงท้ายด้วยเครื่องหมาย = หนึ่งหรือสองตัว?
= คืออักขระเติม Base64 เข้ารหัส 3 ไบต์เป็น 4 อักขระ หากความยาวข้อมูลต้นฉบับไม่ใช่ผลคูณของ 3 จะเพิ่มอักขระ = หนึ่งหรือสองตัวเพื่อให้ความยาวผลลัพธ์รวมเป็นผลคูณของ 4 = หนึ่งตัวหมายความว่า 2 ไบต์อินพุตในกลุ่มสุดท้าย สองตัว == หมายความว่า 1 ไบต์อินพุต
ฉันสามารถถอดรหัสไฟล์ไบนารี รูปภาพ หรือ PDF ได้ไหม?
ได้ แต่ผลลัพธ์จะเป็นข้อมูลไบนารีดิบที่อาจไม่แสดงถูกต้องในรูปแบบข้อความ สำหรับเนื้อหาไบนารี ควรใช้ data URI โดยตรงใน tag '<'img'>' หรือ '<'a'>' หรือบันทึกไบต์ที่ถอดรหัสแล้วลงในไฟล์โดยใช้สคริปต์
มีขีดจำกัดขนาดในการถอดรหัสไหม?
เครื่องมือนี้ทำงานทั้งหมดในเบราว์เซอร์โดยไม่มีขีดจำกัดจากฝั่งเซิร์ฟเวอร์ ขีดจำกัดในทางปฏิบัติขึ้นอยู่กับหน่วยความจำของเบราว์เซอร์คุณ สตริง Base64 ขนาดใหญ่มาก (เกินสองสามเมกะไบต์) ควรจัดการด้วยเครื่องมือ CLI เช่น base64 -d (Linux/macOS) หรือ certutil -decode (Windows)