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

Base64 vs Mã hóa Hex: Nên Chọn Cái Nào?

By · Updated 2026-09-02

Quick Answer

Dùng Base64 khi kích thước quan trọng (tệp đính kèm email, data URLs, API payloads). Dùng Hex khi khả năng đọc quan trọng (debugging, hiển thị hash, mã màu, địa chỉ bộ nhớ). Base64 compact hơn; Hex dễ kiểm tra bằng mắt thường hơn.

Introduction

Base64 và Hex (thập lục phân) đều là lược đồ mã hóa binary-to-text. Base64 mã hóa 3 bytes thành 4 ký tự ASCII (33% overhead). Hex mã hóa 1 byte thành 2 ký tự ASCII (100% overhead). Cả hai đều dùng để biểu diễn dữ liệu binary trong ngữ cảnh văn bản, nhưng khác biệt đáng kể về hiệu quả và khả năng đọc.

Step by Step

  1. Compare encoding efficiency

    Base64: 3 bytes → 4 characters = 33% overhead. Hex: 1 byte → 2 characters = 100% overhead. For 1 KB of data, Base64 produces ~1.33 KB; Hex produces 2 KB. Base64 is 50% smaller than Hex for the same binary data.

  2. Compare readability

    Hex uses 16 characters (0-9, A-F), each representing 4 bits. You can easily read byte values. Base64 uses 64 characters (A-Z, a-z, 0-9, +, /), representing 6 bits each. Base64 output is harder to inspect manually because bytes are split across character boundaries.

  3. Compare use cases

    Base64: email attachments (MIME), data URLs, JWT payloads, API binary data transfer. Hex: hash digests (MD5, SHA-256), color codes (#FF5733), memory addresses, MAC addresses, binary debugging.

  4. Compare character set and safety

    Base64 uses + and / which are not URL-safe. Hex uses only 0-9 and A-F/a-f — always URL-safe and filename-safe. Hex is safe in any context; Base64 may need URL-safe variant.

  5. Decide based on your use case

    Email, data URLs, JWT, API payloads: Base64 (size matters). Hash display, debugging, color codes, memory addresses: Hex (readability matters).

Examples

Same data in Base64 and Hex

Input: Input: 'Hello' (5 bytes) Base64: SGVsbG8= (8 chars) Hex: 48656c6c6f (10 chars)

Output: Base64 is 20% smaller. Hex is easier to inspect (each pair = 1 byte).

Common Problems

  • Base64 is not URL-safe: standard Base64 uses + and / which break in URLs and filenames — use URL-safe Base64 (- and _) for web contexts.
  • Hex has 100% size overhead: Hex doubles the data size (1 byte → 2 chars), which is wasteful for large binary transfers — use Base64 when size matters.
  • Base64 padding ambiguity: Base64 appends = padding characters which some systems strip or reject — handle padding consistently on both encode and decode sides.
  • Hex case inconsistency: some systems use uppercase (A-F), others lowercase (a-f) — normalize case before comparison to avoid false mismatches.

Tips

  • Use Base64 for email attachments, data URLs, and API payloads where size matters — it has only 33% overhead vs Hex's 100%.
  • Use Hex for hash digests, color codes, MAC addresses, and debugging where human readability matters — each byte is a visible 2-character pair.
  • Use URL-safe Base64 (replace + with -, / with _, strip =) when encoding binary data in URLs, query parameters, or filenames.
  • When converting between Base64 and Hex, always decode to raw binary first, then re-encode — never try to convert character-by-character.

Related Tools

Related Guides

References