🔐
← Terug naar handleidingen

Base64 versus hexadecimale codering: welke moet u gebruiken?

· Tags: base64, hex, hexadecimal, encoding, binary-to-text, comparison, data-transfer

Base64 versus hexadecimaal: een overzicht

Base64 en hexadecimale (hex) codering zijn beide binaire-naar-tekst-codeerschema's, maar ze zijn geoptimaliseerd voor heel verschillende doeleinden. Base64 geeft prioriteit aan compacte gegevensoverdracht, terwijl hex prioriteit geeft aan menselijke leesbaarheid. De juiste keuze hangt af van of uw doelgroep een machine is of een ontwikkelaar die de uitvoer leest.

Deze handleiding zet de belangrijkste verschillen uiteen — efficiëntie, leesbaarheid, toepassingen en hoe u daartussen kiest.

Hoe hex-codering werkt

Hexadecimale codering geeft elke byte (8 bits) binaire gegevens weer als twee hexadecimale tekens. Eén hexadecimaal cijfer vertegenwoordigt 4 bits met waarden 0-15, met behulp van de cijfers 0-9 en de letters A-F (of kleine letters a-f).

Voorbeeld van hex-codering

De byte 255 (binair 11111111) wordt FF in hex. De byte 0 (binair 00000000) wordt 00 in hex. De tekenreeks "Hello" wordt 48656C6C6F in hex.

Efficiëntie van hex

Hex vergroot gegevens met 100% — 1 byte invoer wordt 2 bytes uitvoer. Dit is het belangrijkste nadeel van hex: het verdubbelt de grootte van uw gegevens.

Sterke punten van hex

  • Menselijke leesbaarheid: Hex-uitvoer is compact genoeg voor een ontwikkelaar om visueel te scannen
  • Patroonherkenning: Veelvoorkomende bestandskoppen zijn gemakkelijk herkenbaar (FF D8 FF E0 voor JPEG, 89 50 4E 47 voor PNG)
  • Deterministische groepering: Elke byte produceert exact twee hex-tekens zonder opvulling of speciale afhandeling
  • Hoofdletterongevoelige contexten: Hoofdletters en kleine letters in hex-cijfers zijn onderling verwisselbaar

Hoe Base64-codering werkt

Base64 codeert binaire gegevens met behulp van 64 tekens: A-Z, a-z, 0-9, + en /. Het verwerkt gegevens in groepen van 3 bytes (24 bits) en zet deze om in 4 Base64-tekens. Wanneer de invoerlengte geen veelvoud van 3 is, wordt opvulling (=) toegevoegd.

Efficiëntie van Base64

Base64 vergroot gegevens met ongeveer 33% — 3 bytes invoer worden 4 bytes uitvoer. Dit maakt Base64 aanzienlijk ruimte-efficiënter dan hex.

Sterke punten van Base64

  • Ruimte-efficiëntie: 33% overhead versus 100% overhead bij hex
  • Standaard voor tekstprotocollen: Past van nature in JSON, XML, HTML en e-mail
  • Ondersteuning voor data-URL's: Directe insluiting in HTML en CSS
  • Brede ondersteuning in het ecosysteem: Elke programmeertaal heeft een Base64-bibliotheek

Directe efficiëntievergelijking

Zo verhouden de twee coderingen zich voor verschillende invoergroottes:

| Codering | 1 KB invoer | 1 MB invoer | 1 GB invoer | |----------|-----------|-----------|-----------| | Hex | 2 KB | 2 MB | 2 GB | | Base64 | 1.37 KB | 1.37 MB | 1.37 GB | | Ruw binair | 1 KB | 1 MB | 1 GB |

In de praktijk betekent dit dat Base64 ongeveer twee derde van de bandbreedte-overhead bespaart vergeleken met hex. Voor grote gegevensoverdrachten — zoals API-payloads of databasekolommen — is dit verschil aanzienlijk.

Leesbaarheidsvergelijking

Hex is leesbaar; Base64 niet

Hex wint overtuigend op menselijke leesbaarheid. Ontwikkelaars kunnen hex-uitvoer scannen en patronen zien, bestandshandtekeningen herkennen en waarden in één oogopslag identificeren:

Hex:   FF D8 FF E0 00 10 4A 46 49 46 00 01
       (JPEG file header — immediately recognizable)

Base64: /9j/4AAQSkZJRgABAQEASABIAAD/...
       (Looks like random characters)

Hex is de standaardweergave voor:

  • Geheugenadressen en -dumps
  • Kleurcodes (#FF5733, #00A4FF)
  • Cryptografische hash-digests (SHA-256-uitvoer)
  • Debuggen van netwerkprotocollen
  • Inspectie van handtekeningen van binaire bestanden

Wanneer leesbaarheid er niet toe doet

Als geen mens de gecodeerde tekenreeks ooit zal lezen — bijvoorbeeld bij het doorgeven van gegevens via een API, opslag in een databasekolom of insluiting in een JWT-token — maakt de compactheid van Base64 het de duidelijke winnaar.

Wanneer hex gebruiken

Gebruik hex wanneer:

  • U binaire gegevens op laag niveau debugt of inspecteert
  • U werkt met kleurwaarden in CSS, ontwerptools of grafische bibliotheken
  • U cryptografische hash-digests weergeeft (SHA, MD5)
  • U werkt in ingebedde systemen of schrijft firmware
  • U geheugenadressen of machinecode vertegenwoordigt
  • De gegevensomvang klein is en ruimte geen probleem is
  • Menselijke leesbaarheid van de gecodeerde uitvoer van belang is

Wanneer Base64 gebruiken

Gebruik Base64 wanneer:

  • U binaire gegevens verzendt via op tekst gebaseerde protocollen (HTTP, SMTP)
  • U binaire gegevens insluit in JSON- of XML-API-payloads
  • U data-URL's maakt voor inline afbeeldingen, lettertypen of andere assets in HTML/CSS
  • U e-mailbijlagen codeert (MIME-standaard)
  • U werkt met JWT-tokens of authenticatiesystemen
  • Ruimte-efficiëntie belangrijk is, vooral voor grotere payloads
  • U binaire gegevens opslaat in op tekst gebaseerde databasekolommen

Kunt u converteren tussen hex en Base64?

Ja, omdat beide verliesvrije coderingen zijn van dezelfde onderliggende binaire gegevens. U kunt hex decoderen naar bytes en opnieuw coderen als Base64, of Base64 decoderen naar bytes en opnieuw coderen als hex. De onbewerkte binaire gegevens zijn in beide gevallen identiek.

// JavaScript: Convert hex to Base64
function hexToBase64(hexString) {
  const bytes = new Uint8Array(
    hexString.match(/.{1,2}/g).map(byte => parseInt(byte, 16))
  );
  let binaryString = '';
  for (let i = 0; i < bytes.length; i++) {
    binaryString += String.fromCharCode(bytes[i]);
  }
  return btoa(binaryString);
}

hexToBase64('48656C6C6F');
// Output: SGVsbG8= (Base64 encoding of "Hello")

Prestaties en verwerkingssnelheid

Voor zeer grote gegevens is hex-codering rekenkundig iets sneller, omdat elke byte onafhankelijk wordt toegewezen aan twee tekens zonder de groeperingslogica die Base64 vereist. Het verschil is echter verwaarloosbaar op moderne hardware voor de meeste praktische workloads. De grotere prestatiezorg is de gegevensomvang — het over een netwerk sturen van twee keer zoveel gegevens (hex vs Base64) heeft een veel grotere impact dan enig verschil in CPU-tijd.

Beslissingsgids per samenvatting

| Factor | Hex | Base64 | |--------|-----|--------| | Ruimte-overhead | 100% | ~33% | | Menselijk leesbaar | Ja | Nee | | Het best voor debuggen | Ja | Nee | | Het best voor gegevensoverdracht | Nee | Ja | | Gebruikelijk in API's | Zeldzaam | Zeer gebruikelijk | | Browserondersteuning | Handmatige conversie nodig | Ingebouwd (btoa/atob) | | Gebruik in URL's | Veilig | Vereist URL-veilige variant |

Probeer Base64-codering online

Moet u gegevens coderen of decoderen? Gebruik onze gratis online Base64-coder en -decoder om direct te converteren tussen tekst, binair, Base64 en andere formaten.