Giải mã Base64 Trực tuyến

Giải mã văn bản được mã hóa Base64

Đầu vào Base64

Văn bản đã giải mã

Chạy cục bộ · An toàn để dán thông tin bí mật
Đầu ra đã giải mã...

Giải mã Base64 là gì?

Giải mã Base64 là quá trình ngược lại của mã hóa Base64: nó chuyển đổi một chuỗi ASCII được mã hóa Base64 trở lại dữ liệu nhị phân hoặc văn bản gốc. Cứ 4 ký tự Base64 giải mã thành 3 byte dữ liệu gốc. Bộ giải mã tra cứu từng ký tự trong bảng chữ cái Base64, tái tạo các nhóm 6-bit gốc và lắp ráp lại chúng thành các byte 8-bit.

Dữ liệu được mã hóa Base64 có thể nhận biết qua việc sử dụng các chữ hoa và chữ thường, chữ số, và +/ (chuẩn) hoặc -_ (an toàn cho URL), thường kết thúc bằng một hoặc hai ký tự đệm =. Nó xuất hiện thường xuyên trong các JWT token, tệp đính kèm email, data URI, phản hồi API và tệp cấu hình — bất kỳ nơi nào cần nhúng dữ liệu nhị phân hoặc có cấu trúc vào ngữ cảnh chỉ có văn bản.

Tại sao sử dụng công cụ này?

Bộ giải mã này xử lý cả Base64 chuẩn và URL-safe, tự động sửa phần đệm bị thiếu và giải mã hoàn toàn trong trình duyệt của bạn mà không gửi dữ liệu đến máy chủ.

Tự động sửa đệm
Nhiều nguồn tạo ra Base64 không có ký tự = cuối. Công cụ này tự động tính toán và thêm phần đệm bị thiếu trước khi giải mã, ngăn chặn các ngoại lệ InvalidCharacterError.
🛡️
Hỗ trợ cả hai biến thể
Tự động phát hiện và xử lý cả Base64 chuẩn (+/) và URL-safe Base64 (-_), vì vậy bạn có thể dán token từ bất kỳ nguồn nào mà không cần chuyển đổi thủ công.
🔒
Hoàn toàn phía máy khách
Việc giải mã diễn ra cục bộ trong trình duyệt của bạn bằng API atob gốc. Dữ liệu của bạn — có thể chứa bí mật hoặc nội dung nhạy cảm — không bao giờ rời khỏi thiết bị của bạn.
🌐
Đầu ra Unicode
Giải mã chính xác văn bản được mã hóa UTF-8 trở lại Unicode đầy đủ, bao gồm các ký tự nhiều byte, emoji và văn tự CJK.

Cách sử dụng công cụ giải mã Base64 trực tuyến này

Không cần tài khoản, không cần tải lên, không cần cài đặt. Dán chuỗi Base64 vào trường nhập và kết quả được giải mã sẽ xuất hiện ngay lập tức. Mọi thứ chạy trong trình duyệt của bạn — dữ liệu không bao giờ rời khỏi thiết bị của bạn.

  1. 1
    Dán chuỗi Base64 của bạn
    Sao chép bất kỳ chuỗi được mã hóa Base64 nào từ nguồn của bạn — JWT, phản hồi API, tiêu đề tệp đính kèm email hoặc tệp cấu hình — và dán vào trường nhập. Các biến thể chuẩn và URL-safe được phát hiện tự động.
  2. 2
    Tự động phát hiện và sửa chữa
    Bộ giải mã nhận biết liệu đầu vào sử dụng Base64 chuẩn (+/) hay URL-safe Base64 (-_) và tự động sửa phần đệm = bị thiếu. Không cần phải chuẩn hóa chuỗi thủ công trước khi giải mã.
  3. 3
    Kiểm tra đầu ra
    Văn bản được giải mã xuất hiện trong trường đầu ra. Nếu dữ liệu gốc là văn bản UTF-8, nó sẽ hiển thị dưới dạng ký tự có thể đọc được. Dữ liệu nhị phân được hiển thị nguyên vẹn. Thông báo lỗi xuất hiện nếu đầu vào chứa ký tự không hợp lệ không thể giải mã.
  4. 4
    Sao chép hoặc sử dụng kết quả
    Nhấp Sao chép để lấy đầu ra đã giải mã, hoặc sử dụng trực tiếp trong quy trình làm việc của bạn. Cần mã hóa lại kết quả? Chuyển sang công cụ Bộ mã hóa Base64 chỉ bằng một cú nhấp.

Cách giải mã hoạt động

Mỗi ký tự Base64 ánh xạ đến một giá trị 6-bit (0–63). Bốn ký tự liên tiếp cung cấp 24 bit, được giải mã thành 3 byte dữ liệu gốc. Ví dụ dưới đây cho thấy cách "TWFu" giải mã trở lại "Man":

Ví dụ "Man" → TWFu → "Man"
Ký tựChỉ mục6 bit
T19010011
W22010110
F5000101
u46101110

Bốn nhóm 6-bit (010011 010110 000101 101110) được nối thành 24 bit, sau đó chia thành ba byte 8-bit: 01001101 (M=77), 01100001 (a=97), 01101110 (n=110).

Hiểu về đệm

Mã hóa Base64 nhóm các byte đầu vào thành các tập 3. Khi độ dài đầu vào không chia hết cho 3, các ký tự đệm (=) được thêm vào để hoàn thành nhóm cuối cùng. Khi giải mã, các ký tự = này bị loại bỏ và bộ giải mã biết cần loại bỏ các bit không thêm vào trong quá trình mã hóa.

GốcĐã mã hóaQuy tắc đệm
AQQ==1 byte → 2 padding chars
ABQUI=2 bytes → 1 padding char
ABCQUJD3 bytes → no padding needed

Các trường hợp sử dụng phổ biến

Kiểm tra tải trọng JWT
Token JWT bao gồm ba phần được mã hóa URL-safe Base64. Giải mã phần thứ hai (tải trọng) tiết lộ các claim: ID người dùng, vai trò, thời gian hết hạn và siêu dữ liệu khác — mà không cần khóa chữ ký.
Đọc phản hồi API
Các API REST thường trả về dữ liệu nhị phân (nội dung tệp, hình thu nhỏ, tài liệu mật mã) được mã hóa Base64 trong phản hồi JSON. Giải mã trường đó để đọc dữ liệu gốc.
Giải mã nội dung email
Nội dung và tệp đính kèm email MIME được mã hóa Base64. Giải mã chúng tiết lộ nội dung văn bản gốc hoặc cho phép bạn tái tạo các tệp đính kèm nhị phân.
Trích xuất bí mật Kubernetes
Kubernetes lưu trữ các giá trị bí mật dưới dạng Base64 trong các tệp YAML manifest. Giải mã chúng tiết lộ mật khẩu, token và khóa thực tế được lưu trữ trong cluster — hữu ích để gỡ lỗi và kiểm tra.
Gỡ lỗi cấu hình
Các biến môi trường và bí mật pipeline CI/CD thường được mã hóa Base64 để lưu trữ an toàn trong các tệp cấu hình YAML hoặc JSON. Giải mã chúng để xác minh các giá trị thực tế trong quá trình gỡ lỗi.
Giải mã URI dữ liệu
URI dữ liệu nhúng các tài nguyên được mã hóa Base64 trực tiếp vào HTML/CSS. Giải mã phần Base64 để trích xuất hình ảnh gốc, phông chữ hoặc tài nguyên nhúng khác.

Các sai lầm phổ biến

Đây là những nguyên nhân phổ biến nhất gây ra lỗi giải mã Base64 trong thực tế:

Thiếu đệm
Chuỗi Base64 phải có độ dài là bội số của 4. Nhiều API và thư viện JWT loại bỏ = cuối để ngắn gọn. Thêm lại phần đệm: số lượng = bị thiếu là (4 - độ_dài % 4) % 4.
Ký tự URL-safe chưa được chuyển đổi
URL-safe Base64 sử dụng - và _ thay vì + và /. Nếu bạn truyền URL-safe Base64 trực tiếp vào atob() hoặc base64.b64decode(), nó sẽ thất bại. Luôn thay thế - → + và _ → / trước khi giải mã với các thư viện chuẩn.
Khoảng trắng và dấu xuống dòng
Chứng chỉ PEM, dữ liệu MIME và Base64 được sao chép dán thường chứa dấu xuống dòng mỗi 76 ký tự. Loại bỏ tất cả khoảng trắng trước khi giải mã để tránh InvalidCharacterError.
Đầu ra nhị phân so với văn bản
Base64 có thể mã hóa bất kỳ dữ liệu nhị phân nào, không chỉ văn bản. Nếu dữ liệu gốc là tệp nhị phân (hình ảnh, PDF), việc giải mã nó dưới dạng văn bản UTF-8 sẽ tạo ra dữ liệu vô nghĩa. Sử dụng phương thức đầu ra nhị phân thích hợp cho tải trọng không phải văn bản.

Ví dụ mã

Cách giải mã một chuỗi Base64 trong các ngôn ngữ và môi trường phổ biến:

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

Bộ giải mã Base64 so với các lựa chọn thay thế

Nhiều công cụ có thể giải mã Base64, nhưng chúng khác nhau về quyền riêng tư, tốc độ và sự tiện lợi.

Công cụ này
Dựa trên trình duyệt, tức thì, riêng tư. Không có dữ liệu nào được gửi đến bất kỳ máy chủ nào. Xử lý Base64 chuẩn và URL-safe, tự động sửa padding bị thiếu và hoạt động ngoại tuyến.
CLI (base64 -d)
Nhanh cho scripting và file lớn. Yêu cầu terminal. Cần chuẩn hóa thủ công cho đầu vào URL-safe (-_ → +/).
Công cụ đa năng
Curl, Postman, DevTools trình duyệt và các trình chuyển đổi trực tuyến đều có thể giải mã Base64. Sự tiện lợi khác nhau; một số gửi dữ liệu đến máy chủ từ xa.

Câu hỏi thường gặp

Tại sao giải mã cho tôi các ký tự lạ?
Nguyên nhân phổ biến nhất là giải mã dữ liệu nhị phân (hình ảnh, tệp nén) dưới dạng văn bản UTF-8 — các byte nhị phân thường không tạo thành các chuỗi Unicode hợp lệ. Một nguyên nhân khác là giải mã URL-safe Base64 (-_) bằng bộ giải mã chuẩn mong đợi +/. Kiểm tra biến thể nào nguồn của bạn sử dụng.
InvalidCharacterError là gì?
Lỗi trình duyệt này từ atob() xảy ra khi đầu vào chứa các ký tự ngoài bảng chữ cái Base64, như ký tự URL-safe (- hoặc _), khoảng trắng, dấu xuống dòng hoặc ký tự không phải ASCII. Loại bỏ khoảng trắng và chuyển đổi ký tự URL-safe trước khi gọi atob().
Làm sao tôi biết Base64 của mình là URL-safe hay chuẩn?
Tìm kiếm ký tự - hoặc _: nếu có, đó là URL-safe Base64. Base64 chuẩn sử dụng + và /. URL-safe Base64 cũng thường bỏ qua các ký tự đệm =. Token JWT luôn sử dụng URL-safe Base64.
Giải mã Base64 có thể thất bại trong im lặng không?
Có. Một số bộ giải mã âm thầm bỏ qua các ký tự không hợp lệ thay vì ném lỗi, tạo ra đầu ra không chính xác. Luôn xác thực rằng dữ liệu đã giải mã của bạn khớp với định dạng mong đợi (JSON, header hình ảnh, v.v.) thay vì giả định bộ giải mã thành công.
Có giới hạn kích thước cho giải mã Base64 không?
Công cụ dựa trên trình duyệt này có thể xử lý chuỗi Base64 lên đến vài megabyte trước khi giao diện người dùng trở nên chậm. Đối với các tệp rất lớn, hãy sử dụng công cụ CLI hoặc bộ giải mã phía máy chủ.
Tại sao Base64 kết thúc bằng một hoặc hai dấu =?
= là ký tự đệm. Base64 mã hóa 3 byte thành 4 ký tự. Nếu độ dài dữ liệu gốc không phải là bội số của 3, một hoặc hai ký tự = được thêm vào để tổng độ dài đầu ra là bội số của 4. Một = có nghĩa là 2 byte đầu vào trong nhóm cuối cùng; hai == có nghĩa là 1 byte đầu vào.
Tôi có thể giải mã tệp nhị phân, hình ảnh hoặc PDF không?
Có, nhưng đầu ra sẽ là dữ liệu nhị phân thô có thể không hiển thị chính xác dưới dạng văn bản. Đối với nội dung nhị phân, tốt hơn là sử dụng data URI trực tiếp trong thẻ '<'img'>' hoặc '<'a'>', hoặc lưu các byte đã giải mã vào tệp bằng script.
Có giới hạn kích thước để giải mã không?
Công cụ này chạy hoàn toàn trong trình duyệt mà không có giới hạn phía máy chủ. Giới hạn thực tế phụ thuộc vào bộ nhớ trình duyệt của bạn. Các chuỗi Base64 rất lớn (trên vài MB) nên được xử lý bằng công cụ CLI như base64 -d (Linux/macOS) hoặc certutil -decode (Windows).