Mã hóa Base64 là gì và khi nào sử dụng nó

· 4 phút đọc

Nếu bạn làm việc với API, hệ thống email hoặc phát triển web, bạn đã gặp phải Base64 — ngay cả khi không nhận ra nó. Những chuỗi dài chữ cái và chữ số trông như những từ vô nghĩa? Có lẽ đó là Base64.

Base64 làm gì

Base64 chuyển đổi dữ liệu nhị phân (bất kỳ chuỗi byte nào) thành một chuỗi văn bản chỉ sử dụng 64 ký tự « an toàn »: A-Z, a-z, 0-9, + và /. Kết quả luôn kết thúc bằng phần đệm = nếu cần.

Ví dụ:

Mã hóa này tồn tại vì nhiều hệ thống (email, JSON, URL, XML) chỉ xử lý văn bản. Dữ liệu nhị phân — hình ảnh, tệp đã nén, byte thô — có thể chứa các ký tự phá vỡ các hệ thống này. Base64 chuyển nhị phân sang văn bản đi qua bất kỳ kênh văn bản nào mà không bị hỏng.

Sử dụng phổ biến

Tích hợp hình ảnh trong HTML/CSS:

<img src="data:image/png;base64,iVBORw0KGgoAAAA..." />

Các biểu tượng và logo nhỏ có thể được tích hợp trực tiếp vào HTML của bạn, loại bỏ một yêu cầu HTTP bổ sung.

Tải trọng API: khi một API mong đợi JSON nhưng cần bao gồm nhị phân (một tệp tải lên, một hình ảnh chữ ký), việc mã hóa nó thành Base64 cho phép bao gồm nó như một trường văn bản thông thường.

Tệp đính kèm email: các giao thức nhắn tin (SMTP) là dựa trên văn bản. Mỗi tệp đính kèm được mã hóa Base64 đằng sau hậu trường để di chuyển dưới dạng văn bản.

Tiêu đề xác thực: xác thực HTTP Basic mã hóa người_dùng:mật_khẩu trong Base64 trong tiêu đề Authorization. (Đó là mã hóa, không phải mã hóa bảo mật — nó không cung cấp bảo mật nào.)

Cách mã hóa và giải mã

  1. Chọn mã hóa hoặc giải mã — chọn hướng chuyển đổi.
  2. Dán văn bản hoặc tải lên tệp — nhập văn bản trực tiếp hoặc kéo và thả một tệp (đến 5 MB).
  3. Sao chép kết quả — đầu ra cập nhật tức thì. Sao chép nó vào bộ nhớ tạm.

Khi nào sử dụng Base64

Sử dụng khi:

Không sử dụng khi:

Mẹo

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

Base64 có mã hóa bảo mật dữ liệu của tôi không?

Không. Base64 là một mã hóa, không phải mã hóa bảo mật. Bất kỳ ai cũng có thể giải mã một chuỗi Base64 — nó không cung cấp bảo mật nào. Nếu bạn muốn bảo vệ dữ liệu, hãy sử dụng mã hóa thực sự (AES, RSA, v.v.).

Tại sao Base64 làm cho các tệp nặng hơn?

Mã hóa Base64 tăng kích thước dữ liệu khoảng 33%. Ba byte nhị phân trở thành bốn ký tự Base64. Chi phí này là cái giá phải trả để có thể truyền nhị phân một cách an toàn dưới dạng văn bản.

Tôi có thể mã hóa các tệp, không chỉ văn bản không?

Có. Bất kỳ tệp nào (hình ảnh, PDF, âm thanh) đều có thể được mã hóa Base64. Điều này thường được sử dụng để tích hợp các hình ảnh nhỏ trực tiếp vào HTML hoặc CSS dưới dạng Data URL.

Khi nào KHÔNG sử dụng Base64?

Đừng sử dụng nó cho các tệp lớn. Một hình ảnh 1 MB trở thành 1,33 MB ở văn bản Base64, và trình duyệt không thể lưu nó vào bộ nhớ đệm riêng. Đối với bất cứ thứ gì lớn hơn vài KB, phục vụ tệp bình thường hiệu quả hơn.