Base64 là gì? Cách mã hóa và giải mã Base64 online
Tháng 6, 2026 · 8 phút đọc
Base64 là một trong những kỹ thuật mã hóa phổ biến nhất trong lập trình web. Nếu bạn đã từng thấy một chuỗi ký tự dài như SGVsbG8gV29ybGQh hoặc thấy ảnh được nhúng trực tiếp vào HTML dưới dạng chuỗi ký tự, đó chính là Base64. Trong bài viết này, chúng tôi sẽ giải thích Base64 là gì, nguyên lý hoạt động, và cách sử dụng nó trong thực tế.
Base64 là gì?
Base64 là phương pháp mã hóa dữ liệu nhị phân (binary) thành dạng văn bản ASCII sử dụng bảng mã gồm 64 ký tự. Thuật ngữ "Base64" xuất phát từ việc sử dụng 64 ký tự cơ bản để biểu diễn dữ liệu.
Bảng mã Base64 bao gồm:
- 26 chữ cái in hoa: A-Z
- 26 chữ cái thường: a-z
- 10 chữ số: 0-9
- 2 ký tự đặc biệt: + và /
- Ký tự padding: = (được thêm vào cuối nếu cần)
Tại sao cần Base64?
Ban đầu, các giao thức internet như email (SMTP) chỉ hỗ trợ dữ liệu văn bản ASCII 7-bit. Điều này có nghĩa là bạn không thể gửi file ảnh, file âm thanh, hoặc bất kỳ dữ liệu nhị phân nào qua email trực tiếp. Base64 ra đời để giải quyết vấn đề này bằng cách chuyển đổi dữ liệu nhị phân thành chuỗi ký tự ASCII có thể truyền tải an toàn.
Nguyên lý hoạt động của Base64
Quy trình mã hóa Base64 hoạt động như sau:
- Chia dữ liệu thành nhóm 3 byte: Mỗi byte có 8 bit, tổng cộng 24 bit mỗi nhóm
- Chia thành 4 nhóm 6 bit: 24 bit được chia thành 4 phần, mỗi phần 6 bit
- Ánh xạ sang ký tự: Mỗi giá trị 6 bit (0-63) được ánh xạ tới một ký tự trong bảng mã Base64
- Thêm padding: Nếu dữ liệu không chia hết cho 3 byte, ký tự "=" được thêm vào cuối
Ví dụ mã hóa chuỗi "Hello":
H e l l o
72 101 108 108 111 (ASCII values)
01001000 01100101 01101100 01101100 01101111 (binary)
010010 000110 010101 101100 011011 000110 111100 (6-bit groups)
S G V s b G 8 = (Base64)
Kết quả: SGVsbG8=
Ứng dụng thực tế của Base64
1. Nhúng ảnh vào HTML (Data URI)
Bạn có thể nhúng ảnh trực tiếp vào HTML mà không cần file riêng biệt:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUg..." alt="ảnh">
Ưu điểm: Giảm số lượng HTTP request, ảnh load cùng HTML.
Nhược điểm: Kích thước HTML tăng khoảng 33%, không được cache riêng.
2. Nhúng ảnh vào CSS
.logo {
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0i...');
}
3. Đính kèm file vào email
Email sử dụng MIME để đính kèm file, và Base64 là phương pháp mã hóa chính cho các file đính kèm.
4. Truyền dữ liệu qua API
Khi cần gửi file qua API dạng JSON, bạn cần mã hóa file thành Base64:
{
"filename": "document.pdf",
"content": "JVBERi0xLjQKMSAwIG9iago8PA..."
}
5. Lưu trữ dữ liệu binary trong localStorage
LocalStorage chỉ lưu được string, nên bạn cần mã hóa ảnh/file thành Base64 trước khi lưu:
// Lưu ảnh vào localStorage
const base64 = btoa(binaryString);
localStorage.setItem('avatar', base64);
6. Basic Authentication
HTTP Basic Authentication sử dụng Base64 để mã hóa thông tin đăng nhập:
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
// Giải mã: username:password
Cách mã hóa và giải mã Base64 online
Cách nhanh nhất để mã hóa/giải mã Base64 là sử dụng công cụ online. Với công cụ Base64 Encoder/Decoder của ToolHub, bạn có thể:
- Mã hóa văn bản sang Base64
- Giải mã Base64 về văn bản gốc
- Mã hóa file (ảnh, PDF, video) sang Base64
- Giải mã Base64 về file gốc
- Tải kết quả về máy
Mã hóa văn bản sang Base64
- Truy cập ToolHub Base64 Encoder
- Nhập văn bản cần mã hóa vào ô input
- Nhấn "Encode" để mã hóa
- Sao chép kết quả Base64
Giải mã Base64 về văn bản
- Truy cập ToolHub Base64 Decoder
- Dán chuỗi Base64 vào ô input
- Nhấn "Decode" để giải mã
- Xem văn bản gốc
Mã hóa ảnh sang Base64
Để mã hóa ảnh, sử dụng công cụ Image to Base64 của ToolHub:
- Truy cập ToolHub Image to Base64
- Upload ảnh cần mã hóa
- Công cụ sẽ tự động chuyển đổi ảnh thành chuỗi Base64
- Sao chép kết quả để sử dụng trong HTML, CSS, hoặc code
Kích thước dữ liệu sau khi mã hóa Base64
Một điều quan trọng cần lưu ý: dữ liệu sau khi mã hóa Base64 sẽ lớn hơn khoảng 33% so với dữ liệu gốc. Điều này là do mỗi 3 byte dữ liệu gốc được mã hóa thành 4 ký tự Base64.
| Kích thước gốc | Kích thước Base64 | Tăng thêm |
|---|---|---|
| 1 KB | 1.33 KB | +33% |
| 100 KB | 133 KB | +33% |
| 1 MB | 1.33 MB | +33% |
| 10 MB | 13.3 MB | +33% |
Vì vậy, không nên sử dụng Base64 cho file lớn. Đối với ảnh lớn, hãy sử dụng công cụ nén ảnh trước khi mã hóa Base64.
Base64 URL-safe
Phiên bản Base64 tiêu chuẩn sử dụng ký tự "+" và "/" có thể gây vấn đề trong URL. Base64 URL-safe thay thế:
- "+" thành "-" (dấu trừ)
- "/" thành "_" (dấu gạch dưới)
Đây là biến thể quan trọng khi sử dụng Base64 trong URL, JWT token, và các giao thức web khác.
Base64 so với các phương pháp encoding khác
| Phương pháp | Ký tự sử dụng | Kích thước tăng | Ứng dụng |
|---|---|---|---|
| Base64 | 64 ký tự | +33% | Email, HTML, API |
| Base32 | 32 ký tự | +60% | TOTP, DNS |
| Base16 (Hex) | 16 ký tự | +100% | Debug, hash |
| URL Encoding | %XX | +200% (max) | URL query string |
Lưu ý bảo mật
Base64 không phải là mã hóa bảo mật! Đây là điểm quan trọng cần hiểu:
- Base64 chỉ là encoding, không có khóa bí mật
- Bất kỳ ai cũng có thể giải mã Base64 mà không cần thông tin额外
- Không bao giờ sử dụng Base64 để bảo vệ dữ liệu nhạy cảm
- Nếu cần mã hóa bảo mật, hãy sử dụng AES, RSA, hoặc các thuật toán mã hóa thực sự
Base64 thường bị nhầm lẫn với mã hóa bảo mật, nhưng thực tế nó chỉ là cách biểu diễn dữ liệu nhị phân dưới dạng văn bản.
Câu hỏi thường gặp
Mã hóa Base64 ngay bây giờ
Sử dụng công cụ miễn phí của ToolHub để mã hóa và giải mã Base64 nhanh chóng.
Mở Base64 Encoder/Decoder →