Văn bản Đầu vào
0 ký tự

Công cụ mã hóa / giải mã Base64 miễn phí online hỗ trợ UTF-8 / ASCII / ISO-8859-1 cùng các biến thể Standard / URL-Safe / MIME. Hiển thị tỷ lệ tăng kích thước theo thời gian thực.

Đề xuất Liên quan

Mã hóa Base64 là gì?

Base64 là cách chuyển dữ liệu nhị phân thành văn bản bằng 64 ký tự ASCII có thể in được. Nó giúp dữ liệu nhị phân đi qua các hệ thống chỉ hỗ trợ văn bản như HTTP header, JSON, XML hoặc tham số URL.

**Base64 không phải là mã hóa bảo mật**. Nó chỉ đổi định dạng dữ liệu. Nếu cần bảo vệ dữ liệu nhạy cảm, bạn phải dùng mã hóa thật như AES.

**URL-Safe Base64** thay + và / bằng - và _, đồng thời thường bỏ dấu = ở cuối. Kiểu này thường gặp trong JWT và OAuth PKCE.

**MIME wrapping** thêm xuống dòng sau mỗi 76 ký tự theo RFC 2045, chủ yếu dùng cho email và các trường hợp cần nội dung nhiều dòng.

Công cụ này dùng **btoa / atob** của trình duyệt kết hợp xử lý UTF-8 an toàn, nên mọi tính toán đều diễn ra cục bộ mà không gửi dữ liệu đi đâu.

Trường hợp sử dụng

  • Debug JWT
  • Tạo Basic Auth
  • Phát triển OAuth / PKCE
  • Giải mã hoặc mã hóa field Base64 trong API
  • Nhúng ảnh bằng Data URI
  • Chuẩn bị MIME Base64 cho tệp đính kèm email

Cách Sử dụng

  1. Chọn chế độ Encode hoặc Decode
  2. Chọn biến thể Standard, URL-Safe hoặc MIME
  3. Dán văn bản hoặc chuỗi Base64
  4. Xem thống kê kích thước ở phía dưới
  5. Sao chép kết quả

Tính năng

  • Chuyển Encode / Decode chỉ với một lần bấm
  • Hỗ trợ UTF-8, ASCII và ISO-8859-1
  • Ba biến thể đầu ra: Standard, URL-Safe và MIME
  • Thống kê kích thước theo thời gian thực
  • Thông báo lỗi rõ ràng hơn
  • Vạch chia có thể kéo trên desktop
  • Tab riêng cho input / output trên mobile

Ví dụ mã

Mã hóa Base64 trong JavaScript

// Encode (UTF-8 safe)
function b64Encode(str) {
  return btoa(unescape(encodeURIComponent(str)));
}

// Decode (UTF-8 safe)
function b64Decode(str) {
  return decodeURIComponent(escape(atob(str)));
}

Mã hóa Base64 trong Python

import base64

encoded = base64.b64encode('Hello thế giới'.encode('utf-8'))
print(encoded.decode())

Mã hóa Base64 trong Java

import java.nio.charset.StandardCharsets;
import java.util.Base64;

String encoded = Base64.getEncoder().encodeToString("Hello thế giới".getBytes(StandardCharsets.UTF_8));

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

Mã hóa Base64 có phải là mã hóa bảo mật không?

Không. Base64 chỉ là cách biểu diễn lại dữ liệu ở dạng có thể đảo ngược, nên ai cũng có thể giải mã lại. Nếu cần bảo vệ dữ liệu nhạy cảm, hãy dùng mã hóa thật như AES.

Công cụ AES

Base64 làm dữ liệu tăng kích thước bao nhiêu?

Thông thường khoảng 33%. Mỗi 3 byte dữ liệu gốc được đổi thành 4 ký tự Base64 nên đầu ra lớn hơn đầu vào.

Công cụ thống kê Base64

Standard, URL-Safe và MIME khác nhau ở đâu?

Standard là Base64 thông thường. URL-Safe thay + và / bằng - và _, nên phù hợp với JWT và URL. MIME thêm xuống dòng sau mỗi 76 ký tự nên hợp với email và nội dung nhiều dòng.

URL-Safe Base64MIME Base64

Làm sao giải mã header hoặc payload của JWT?

JWT dùng Base64URL. Hãy chọn chế độ URL-Safe rồi dán đoạn đầu (header) hoặc đoạn thứ hai (payload) của JWT để giải mã. Đoạn thứ ba là chữ ký.

Công cụ JWT

Padding (=) trong Base64 là gì?

Chuỗi Base64 phải có độ dài là bội số của 4. Nếu dữ liệu đầu vào không chia hết cho 3 byte, ký tự = sẽ được thêm vào cuối để cân độ dài.

Công cụ Base64 Padding

Vì sao btoa và atob trong JavaScript không hỗ trợ trực tiếp tiếng Việt có dấu hoặc emoji?

Vì chúng làm việc với chuỗi Latin-1, trong đó 1 ký tự tương ứng 1 byte. Với văn bản UTF-8 đa byte, bạn phải chuyển đổi an toàn trước khi đưa vào btoa.

Data URI Scheme là gì và dùng Base64 để nhúng ảnh như thế nào?

Data URI là định dạng nhúng dữ liệu trực tiếp trong URL theo cú pháp `data:[<mediatype>][;base64],<data>`. Nó phù hợp với icon nhỏ hoặc ảnh nền CSS, nhưng không thích hợp cho file lớn vì Base64 làm kích thước tăng lên.

Công cụ Data URIBase64 sang ảnh

Thuật ngữ

RFC 4648
Tiêu chuẩn IETF chính thức cho Base16 / Base32 / Base64, định nghĩa Base64 chuẩn và Base64 URL-safe.URL-Safe Base64Base64 Padding
RFC 2045 (MIME)
Tiêu chuẩn MIME quy định Base64 như một cách mã hóa nội dung email.MIME Base64
Base64URL
Biến thể Base64 an toàn cho URL, thay + bằng - và / bằng _.URL-Safe Base64JWT
MIME Base64
Biến thể Base64 có xuống dòng mỗi 76 ký tự theo RFC 2045.MIME Base64
Padding
Ký tự = được thêm vào cuối để đảm bảo chuỗi Base64 có độ dài là bội số của 4.Base64 Padding
Bảng chữ cái Base64
Tập ký tự A-Z, a-z, 0-9, + và / được Base64 chuẩn sử dụng.
btoa / atob
API gốc của trình duyệt để mã hóa và giải mã Base64.
Data URI Scheme
Định dạng URI cho phép nhúng dữ liệu trực tiếp vào URL.Data URIBase64 sang ảnh
HTTP Basic Authentication
Cơ chế xác thực HTTP trong đó username:password được mã hóa Base64 rồi gửi trong header Authorization.Trình tạo Auth Header
Tỷ lệ phình Base64
Mức tăng kích thước dữ liệu sau khi mã hóa Base64, thường vào khoảng 33%.

So sánh 3 biến thể Base64

Đặc điểmStandardURL-SafeMIME
Ký tự đặc biệt+ /- _+ /
Padding (=)Có dùngThường bỏCó dùng
Xuống dòngKhôngKhôngMỗi 76 ký tự
Tiêu chuẩnRFC 4648 §4RFC 4648 §5RFC 2045
Tình huống thường gặpData URI, mã hóa chungJWT, tham số URL, tên fileTệp đính kèm email, SMTP

Bảng so sánh các kiểu mã hóa họ Base

Mã hóaSố ký tựĐặc điểm tập ký tựĐộ phình kích thướcMục đích phổ biến
Base16 (Hex)160-9, A-F100%Debug, hiển thị hash
Base3232A-Z, 2-760%DNS, khóa TOTP, QR code
Base5858Bỏ các ký tự dễ nhầm như 0/O/I/l38%Địa chỉ Bitcoin, crypto
Base6262A-Z, a-z, 0-934%URL rút gọn, mã ID
Base6464A-Z, a-z, 0-9, +, /33%Data URI, MIME, JWT (URL-Safe)

Authoritative References