Cách sử dụng
- Dán chuỗi Base64 vào ô đầu vào, hoặc nhấp Mở tệp để tải một tệp chứa văn bản Base64.
- Giữ đầu ra dạng văn bản và chọn Bảng mã (mặc định là UTF-8), hoặc chuyển Đầu ra dạng sang Hex với dữ liệu nhị phân.
- Nếu giải mã thất bại, hãy đọc thông báo lỗi: nó cho biết vị trí của ký tự không hợp lệ đầu tiên.
- Nhấn Sao chép hoặc Tải xuống để lấy kết quả đã giải mã.
Bộ giải mã chấp nhận những gì
Giải mã là quá trình ngược của mã hóa: mỗi ký tự được ánh xạ trở lại giá trị 6 bit của nó, và cứ bốn ký tự trở thành ba byte. Base64 gặp ngoài thực tế hiếm khi "sạch", vì vậy bộ giải mã này khá dễ tính:
- Dấu cách và ký tự xuống dòng được bỏ qua, nên bạn có thể dán nguyên nội dung MIME đã ngắt dòng hay khối PEM. Tuy nhiên, hãy xóa các dòng
-----BEGINvà-----ENDtrước: chữ cái và dấu gạch ngang trong đó đều là ký tự Base64 hợp lệ và sẽ bị giải mã như dữ liệu. - Đầu vào an toàn cho URL với
-và_được giải mã giống hệt Base64 tiêu chuẩn với+và/. - Thiếu phần đệm không thành vấn đề. Chỉ độ dài 4n + 1 ký tự bị từ chối, vì một ký tự lẻ còn dư không thể tạo thành một byte; điều này thường có nghĩa là chuỗi đã bị cắt mất một phần.
- Data URI cũng dùng được: tiền tố
data:...;base64,ở đầu sẽ được loại bỏ trước khi giải mã.
Đầu ra văn bản hay nhị phân
Kết quả giải mã luôn là một dãy byte. Nếu dữ liệu gốc là văn bản, hãy giữ đầu ra dạng văn bản và chọn đúng bảng mã. Nếu đó là hình ảnh, PDF, tệp nén, khóa hoặc bản mã, không bảng mã nào giúp đọc được: hãy chuyển đầu ra sang Hex để xem các byte, hoặc mở Base64 sang tệp hay Base64 sang ảnh để xem trước và lưu lại. Vài ký tự đầu tiên thường đã tiết lộ nội dung:
| Base64 bắt đầu bằng | Nội dung sau giải mã |
|---|---|
iVBORw0KGgo | Ảnh PNG |
/9j/ | Ảnh JPEG |
R0lGOD | Ảnh GIF |
JVBERi0 | Tài liệu PDF |
UEsDB | Tệp nén ZIP, bao gồm cả DOCX, XLSX và JAR |
H4sI | Dữ liệu nén gzip |
eyJ | Đối tượng JSON, chẳng hạn header của JWT |
Vì sao văn bản giải mã bị lỗi ký tự (lỗi font)
- Sai bảng mã. Văn bản UTF-8 khi đọc bằng Windows-1252 sẽ biến é thành
é, còn văn bản GBK hoặc Shift_JIS khi đọc bằng UTF-8 sẽ hiện ký tự thay thế (�). Hãy chọn đúng bảng mã mà văn bản được viết ban đầu. - Dữ liệu nhị phân. Các ký hiệu ngẫu nhiên xen lẫn vài đoạn đọc được, chẳng hạn
PNGhoặcPKở gần đầu, cho thấy nội dung là một tệp chứ không phải văn bản. - Dữ liệu nén hoặc đã mã hóa bảo mật. Luồng gzip, Protocol Buffers và bản mã vẫn được giải mã đúng nhưng không phải văn bản. Đầu ra dạng Hex cho thấy dữ liệu thực sự là gì.
- Mã hóa hai lần. Nếu bản thân kết quả lại là Base64, hãy dán nó trở lại ô đầu vào và giải mã thêm lần nữa.
Giải mã Base64 trong mã nguồn
# Python
base64.b64decode(s).decode('utf-8')
// Node.js (cũng chấp nhận đầu vào an toàn cho URL)
Buffer.from(s, 'base64').toString('utf8')
// Trình duyệt: atob() trả về mỗi byte một ký tự, nên cần giải mã UTF-8 sau đó
new TextDecoder().decode(Uint8Array.from(atob(s), c => c.charCodeAt(0)))
# Shell trên Linux và macOS
echo 'SGVsbG8=' | base64 --decode
Đặc tả
| Bảng ký tự | A-Z a-z 0-9 + / |
|---|---|
| Kích thước đầu ra | 4 ký tự cho mỗi 3 byte (khoảng 133%) |
| Phần đệm | Thêm = cho đủ bội số của 4 ký tự |
| Tiêu chuẩn | RFC 4648, mục 4 |
| Phân biệt hoa thường | Có |
Ví dụ
| Đầu vào (UTF-8) | Đầu ra |
|---|---|
Hello, World! | SGVsbG8sIFdvcmxkIQ== |
Base64.is | QmFzZTY0Lmlz |
你好 | 5L2g5aW9 |
Câu hỏi thường gặp
Vì sao tôi nhận được lỗi ký tự không hợp lệ?
%2B và %3D được sao chép từ URL. Hãy xóa dấu ngoặc kép hoặc giải mã URL cho chuỗi trước. Thông báo lỗi cho biết vị trí của ký tự gây lỗi đầu tiên.Có thể giải mã Base64 không có phần đệm không?
= ở cuối, nên chuỗi không có phần đệm từ JWT, URL và API vẫn được giải mã bình thường.Vì sao kết quả bị sai sau khi sao chép Base64 từ URL?
+ thành dấu cách. Công cụ này bỏ qua dấu cách nên những ký tự đó bị mất. Hãy thay dấu cách bằng + trước khi giải mã, và dùng Base64URL cho các giá trị truyền qua URL.Làm sao để giải mã Base64 thành ảnh hoặc tệp?
Chuỗi Base64 của tôi có bị gửi lên máy chủ không?
Không. Việc giải mã chạy trong trình duyệt của bạn bằng JavaScript và dữ liệu đầu vào không bao giờ rời khỏi thiết bị, điều này rất quan trọng khi bạn giải mã token, thông tin bí mật trong cấu hình hay dữ liệu cá nhân.