utilduck
Home · Nhà phát triển · Mã hóa / Giải mã Base64

Mã hóa / Giải mã Base64

Nhập hoặc dán văn bản, chọn Mã hóa hoặc Giải mã và xem kết quả ngay.

Kết quả
-

Base64 là gì?

Base64 là một sơ đồ mã hóa chuyển đổi dữ liệu nhị phân hoặc văn bản thành chuỗi 64 ký tự ASCII có thể in được. Nó được sử dụng rộng rãi để đính kèm email, nhúng hình ảnh trong HTML/CSS và truyền dữ liệu nhị phân qua các kênh chỉ văn bản. Giải mã đảo ngược quá trình.

Cách mã hóa văn bản sang Base64?

Để mã hóa văn bản sang Base64, lấy các byte thô của văn bản, gộp thành từng nhóm 3 byte, rồi ánh xạ mỗi nhóm 3 byte (24 bit) thành bốn ký tự trong bảng chữ Base64; các nhóm cuối chưa đủ 3 byte được đệm thêm bằng dấu =. Ví dụ: "hello" mã hóa thành "aGVsbG8=" và giải mã "aGVsbG8=" trả lại "hello".

Các bước mã hóa và giải mã Base64

  1. Đổi văn bản đầu vào thành byte thô bằng bảng mã UTF-8.
  2. Gộp các byte thành từng nhóm 3 byte (tổng 24 bit) từ trái sang phải.
  3. Chia mỗi nhóm 24 bit thành bốn đoạn 6 bit (giá trị từ 0 đến 63).
  4. Ánh xạ mỗi đoạn 6 bit thành một ký tự trong bảng chữ Base64 A-Z, a-z, 0-9, +, /.
  5. Nếu nhóm cuối có ít hơn 3 byte, đệm thêm dấu = vào đầu ra để tổng độ dài là bội số của 4; khi giải mã, thực hiện ngược lại từng bước để khôi phục byte gốc.

Quy tắc mã hóa Base64

3 byte (24 bit) -> 4 ký tự Base64 (mỗi ký tự 6 bit), đệm bằng = cho đến khi là bội số của 4
  • Bảng chữ Base64 = A-Z, a-z, 0-9, +, / — 64 ký tự có thể in được, mỗi ký tự đại diện cho một giá trị từ 0 đến 63
  • Ký tự đệm = lấp đầy nhóm cuối chưa hoàn chỉnh để độ dài đầu ra đã mã hóa luôn là bội số của 4

Ví dụ chuyển đổi văn bản sang Base64

Văn bảnBase64
aYQ==
abYWI=
abcYWJj
helloaGVsbG8=
Hello, World!SGVsbG8sIFdvcmxkIQ==

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

Mã hóa Base64 có giống mã hóa mật mã (encryption) không?

Không. Base64 không dùng khóa bí mật nào — bất kỳ ai cũng có thể giải mã để lấy lại văn bản gốc bằng cùng bảng chữ công khai, chuẩn hóa. Nó chỉ thay đổi cách biểu diễn dữ liệu để truyền an toàn qua các hệ thống chỉ hỗ trợ văn bản thuần; nó không mang lại tính bảo mật và không bao giờ nên dùng để bảo vệ dữ liệu nhạy cảm.

Vì sao đầu ra đã mã hóa đôi khi kết thúc bằng = hoặc ==?

Ký tự = đóng vai trò đệm. Base64 luôn chuyển đổi từng nhóm 3 byte đầu vào thành 4 ký tự đầu ra; nếu độ dài đầu vào không phải bội số của 3, nhóm cuối được đệm thêm một hoặc hai dấu = để tổng độ dài đầu ra vẫn là bội số của 4.

Vì sao đầu ra Base64 lại dài hơn văn bản gốc?

Mỗi nhóm 3 byte đầu vào trở thành 4 ký tự đầu ra, nên văn bản đã mã hóa lớn hơn khoảng 33% so với bản gốc. Chi phí tăng thêm này là cái giá phải trả để biểu diễn dữ liệu nhị phân bất kỳ chỉ bằng các ký tự ASCII an toàn và có thể in được.

Base64 có thể mã hóa mọi loại dữ liệu, không chỉ văn bản không?

Có. Base64 hoạt động trên byte thô, nên có thể mã hóa hình ảnh, âm thanh hoặc bất kỳ tệp nhị phân nào, không chỉ văn bản. Công cụ này nhận văn bản làm đầu vào và mã hóa phần biểu diễn byte UTF-8 của nó; để mã hóa tệp nhị phân bất kỳ cần một công cụ đọc trực tiếp byte của tệp.

Công cụ này mã hóa và giải mã văn bản UTF-8 hoàn toàn trong trình duyệt của bạn; không hỗ trợ tải trực tiếp tệp nhị phân, và giải mã một văn bản không phải Base64 hợp lệ sẽ hiển thị lỗi thay vì đầu ra một phần hoặc bị hỏng.

Sources: RFC 4648 - The Base16, Base32, and Base64 Data Encodings

Quyền riêng tư và an toàn

  • Tính toán trong trình duyệt — Dữ liệu bạn nhập chỉ được tính trên thiết bị của bạn và không gửi tới máy chủ utilduck.
  • Kết nối được mã hóa — Mọi trang đều dùng HTTPS nên không ai trên đường truyền đọc được nội dung.
  • Không chia sẻ với bên thứ ba — Dữ liệu bạn nhập không được chuyển cho dịch vụ phân tích hay quảng cáo.
  • Không lưu trữ — Kết quả không được lưu trên máy chủ nào và bạn không cần tạo tài khoản.

Cập nhật lần cuối: 2026-08-17