Bỏ qua đến nội dung chính
FreeOnlineTools Go
Tiếng Việt
explanation

Mã hóa Base64 Là Gì? Giải thích Đầy đủ

By FreeOnlineTools Team · Updated 2026-09-02

Quick Answer

Mã hóa Base64 chuyển dữ liệu binary thành văn bản dùng 64 ký tự in được (A-Z, a-z, 0-9, +, /). Mỗi 3 byte input thành 4 ký tự Base64. Base64 đảo ngược được (không encryption) và tăng kích thước dữ liệu ~33%. Dùng Base64 Encoder và Decoder miễn phí.

Introduction

Base64 là lược đồ mã hóa binary-to-text chuyển dữ liệu binary thành chuỗi ASCII dùng 64 ký tự in được. Được định nghĩa bởi RFC 4648 và dùng phổ biến để mã hóa dữ liệu truyền qua môi trường văn bản —tệp đính kèm email (MIME), Data URLs, phần JWT token và JSON payload chứa dữ liệu binary. Base64 là encoding, không phải encryption —hoàn toàn đảo ngược được và không yêu cầu key.

Step by Step

  1. Understand the character set

    Base64 uses 64 characters: A-Z (26), a-z (26), 0-9 (10), + and / (2). The = character is used for padding when the input length is not a multiple of 3. The URL-safe variant replaces + with - and / with _ and omits padding.

  2. Learn how encoding works

    Base64 processes input in 3-byte (24-bit) blocks. Each 24-bit block is split into four 6-bit groups. Each 6-bit value (0-63) maps to one of the 64 characters. If the input is not a multiple of 3, padding (=) is added: 1 byte input → 2 Base64 chars + ==, 2 bytes → 3 chars + =.

  3. Understand the size overhead

    Base64 increases data size by approximately 33% — every 3 bytes becomes 4 characters. A 1 MB file becomes ~1.33 MB when Base64-encoded. This overhead is the trade-off for text-only compatibility.

  4. Distinguish encoding from encryption

    Base64 is encoding, not encryption. It is reversible without a key — anyone can decode it. Base64 provides no confidentiality; it only converts binary to text for transport. Never use Base64 to store passwords or secrets.

Examples

Encode text

Input: Hello, World!

Output: SGVsbG8sIFdvcmxkIQ==

Encode binary data (shown as hex)

Input: Bytes: 0x00 0x01 0x02

Output: AAEC

URL-safe Base64 (JWT style)

Input: Standard: SGVsbG8= → URL-safe: SGVsbG8 (no padding, - and _ for + and /)

Output: Used in JWT tokens and URL parameters

Common Problems

  • Treating Base64 as encryption —Base64 is reversible without a key. Anyone can decode it. Never use it to protect sensitive data.
  • Non-ASCII characters —naive btoa() throws on Unicode. Use TextEncoder + btoa(unescape(encodeURIComponent(text))) or a UTF-8-aware tool.
  • Padding removal —the = padding is part of the encoding. Removing it breaks decoding (though some decoders can reconstruct it).
  • Size overhead —Base64 adds ~33% to data size. For large files, this is significant; consider whether encoding is necessary.

Tips

  • Use Base64 for Data URLs to embed small images in HTML/CSS without a separate HTTP request.
  • Use URL-safe Base64 (replace + with -, / with _, strip padding) for URLs and JWT tokens.
  • Base64 is not encryption —use it for transport compatibility, not for confidentiality.
  • Use our Base64 Encoder and Decoder for instant, private conversion in your browser.

Related Tools

Related Guides

References