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:

  1. 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
  2. Chia thành 4 nhóm 6 bit: 24 bit được chia thành 4 phần, mỗi phần 6 bit
  3. Á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
  4. 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

  1. Truy cập ToolHub Base64 Encoder
  2. Nhập văn bản cần mã hóa vào ô input
  3. Nhấn "Encode" để mã hóa
  4. Sao chép kết quả Base64

Giải mã Base64 về văn bản

  1. Truy cập ToolHub Base64 Decoder
  2. Dán chuỗi Base64 vào ô input
  3. Nhấn "Decode" để giải mã
  4. 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:

  1. Truy cập ToolHub Image to Base64
  2. Upload ảnh cần mã hóa
  3. Công cụ sẽ tự động chuyển đổi ảnh thành chuỗi Base64
  4. 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ốcKích thước Base64Tăng thêm
1 KB1.33 KB+33%
100 KB133 KB+33%
1 MB1.33 MB+33%
10 MB13.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ápKý tự sử dụngKích thước tăngỨng dụng
Base6464 ký tự+33%Email, HTML, API
Base3232 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

Base64 là gì?
Base64 là phương pháp mã hóa dữ liệu nhị phân thành dạng văn bản ASCII sử dụng 64 ký tự (A-Z, a-z, 0-9, +, /). Nó được sử dụng rộng rãi để nhúng dữ liệu binary vào email, HTML, CSS và JSON.
Base64 có phải là mã hóa bảo mật không?
Không, Base64 không phải là mã hóa bảo mật. Nó chỉ là phương pháp 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 sử dụng Base64 để bảo vệ dữ liệu nhạy cảm.
Tại sao Base64 làm tăng kích thước dữ liệu?
Base64 mã hóa mỗi 3 byte dữ liệu gốc thành 4 ký tự ASCII. Điều này làm tăng kích thước khoảng 33%. Đây là chi phí phải trả để có thể biểu diễn dữ liệu nhị phân dưới dạng văn bản.
Khi nào nên sử dụng Base64?
Sử dụng Base64 khi cần nhúng dữ liệu binary vào định dạng văn bản: nhúng ảnh nhỏ vào HTML/CSS (data URI), đính kèm file vào email (MIME), truyền file qua API dạng JSON, lưu trữ binary trong localStorage.
Có nên nhúng ảnh lớn bằng Base64 vào HTML không?
Không nên. Ảnh lớn mã hóa Base64 sẽ tăng kích thước 33% và không được cache riêng biệt. Chỉ nên nhúng ảnh nhỏ (icon, logo) dưới 5KB. Ảnh lớn nên sử dụng thẻ img thông thường với src trỏ đến URL.

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 →

Bài viết liên quan