Base64 vs Hex-codering: Welke Moet Je Gebruiken?
Quick Answer
Gebruik Base64 wanneer grootte telt (e-mailbijlagen, data URLs, API-payloads). Gebruik Hex wanneer leesbaarheid telt (debuggen, hash-weergave, kleurcodes, geheugenadressen). Base64 is compacter; Hex is beter menselijk inspecteerbaar.
Introduction
Base64 en Hex (hexadecimaal) zijn beide binaire-naar-tekst coderingsschema's. Base64 codeert 3 bytes in 4 ASCII-tekens (33% overhead). Hex codeert 1 byte in 2 ASCII-tekens (100% overhead). Beide worden gebruikt om binaire data in tekst-only contexten weer te geven, maar ze verschillen aanzienlijk in efficiëntie en leesbaarheid.
Step by Step
-
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.
-
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.
-
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.
-
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.
-
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.