Zo gebruik je het
- Plak de Base64-string in het invoerveld, of klik op Bestand openen om een bestand met Base64-tekst te laden.
- Laat Uitvoer als op Tekst staan en kies de tekenset bij Tekencodering (standaard UTF-8), of zet Uitvoer als op Hex voor binaire gegevens.
- Als het decoderen mislukt, lees dan de foutmelding: die geeft de positie van het eerste ongeldige teken.
- Kopieer het gedecodeerde resultaat met Kopiëren of sla het op met Downloaden.
Wat de decoder accepteert
Decoderen draait het coderen om: elk teken wordt teruggezet naar zijn 6-bitswaarde en elke vier tekens worden weer drie bytes. Base64 uit de praktijk is zelden helemaal schoon, daarom is deze decoder tolerant:
- Spaties en regeleinden worden genegeerd, dus afgebroken MIME-berichten en PEM-blokken kun je plakken zoals ze zijn. Verwijder wel eerst de regels
-----BEGINen-----END: hun letters en streepjes zijn geldige Base64-tekens en zouden als gegevens worden gedecodeerd. - URL-veilige invoer met
-en_wordt net zo gedecodeerd als standaard-Base64 met+en/. - Ontbrekende opvulling is geen probleem. Alleen een lengte van 4n + 1 tekens wordt geweigerd, omdat één overgebleven teken geen byte kan vormen; dat betekent meestal dat de string is afgekapt.
- Data-URI's werken ook: een voorvoegsel
data:...;base64,aan het begin wordt vóór het decoderen verwijderd.
Tekst of binaire uitvoer
Het resultaat van decoderen is altijd een reeks bytes. Was het origineel tekst, laat Uitvoer als dan op Tekst staan en kies de bijbehorende tekenset. Was het een afbeelding, PDF, archief, sleutel of versleutelde tekst, dan maakt geen enkele tekenset het leesbaar: zet Uitvoer als op Hex om de bytes te bekijken, of open Base64 naar bestand of Base64 naar afbeelding om een voorbeeld te zien en het bestand op te slaan. De eerste tekens verraden vaak al wat de inhoud is:
| Base64 begint met | Gedecodeerde inhoud |
|---|---|
iVBORw0KGgo | PNG-afbeelding |
/9j/ | JPEG-afbeelding |
R0lGOD | GIF-afbeelding |
JVBERi0 | PDF-document |
UEsDB | ZIP-archief, ook DOCX, XLSX en JAR |
H4sI | met gzip gecomprimeerde gegevens |
eyJ | JSON-object, zoals een JWT-header |
Waarom de gedecodeerde tekst onleesbaar is
- Verkeerde tekenset. UTF-8-tekst die als Windows-1252 wordt gelezen, maakt van é
é, en GBK- of Shift_JIS-tekst die als UTF-8 wordt gelezen, toont vervangingstekens (�). Kies de tekenset waarin de tekst is geschreven. - Binaire gegevens. Willekeurige symbolen met hier en daar een leesbaar stukje, zoals
PNGofPKvlak bij het begin, betekenen dat de inhoud een bestand is en geen tekst. - Gecomprimeerde of versleutelde gegevens. gzip-streams, Protocol Buffers en versleutelde tekst worden correct gedecodeerd, maar zijn geen tekst. Met Hex als uitvoer zie je wat er werkelijk in staat.
- Dubbele codering. Is de uitvoer zelf weer Base64, plak die dan terug in de invoer en decodeer hem nog een keer.
Base64 decoderen in code
# Python
base64.b64decode(s).decode('utf-8')
// Node.js (accepteert ook URL-veilige invoer)
Buffer.from(s, 'base64').toString('utf8')
// Browser: atob() geeft één teken per byte terug, dus decodeer daarna UTF-8
new TextDecoder().decode(Uint8Array.from(atob(s), c => c.charCodeAt(0)))
# Shell op Linux en macOS
echo 'SGVsbG8=' | base64 --decode
Specificatie
| Alfabet | A-Z a-z 0-9 + / |
|---|---|
| Uitvoergrootte | 4 tekens per 3 bytes (ongeveer 133%) |
| Opvulling | = tot een veelvoud van 4 tekens |
| Standaard | RFC 4648, sectie 4 |
| Hoofdlettergevoelig | Ja |
Voorbeelden
| Invoer (UTF-8) | Uitvoer |
|---|---|
Hello, World! | SGVsbG8sIFdvcmxkIQ== |
Base64.is | QmFzZTY0Lmlz |
你好 | 5L2g5aW9 |
Veelgestelde vragen
Waarom krijg ik een foutmelding over een ongeldig teken?
%2B en %3D die uit een URL zijn meegekopieerd. Verwijder de aanhalingstekens of URL-decodeer de string eerst. De foutmelding toont de positie van het eerste ongeldige teken.Kan ik Base64 zonder opvulling decoderen?
=-tekens niet nodig, dus strings zonder opvulling uit JWT's, URL's en API's worden gewoon gedecodeerd.Waarom klopt de uitvoer niet nadat ik Base64 uit een URL heb gekopieerd?
+ vaak een spatie. Spaties worden hier genegeerd, dus die tekens gaan verloren. Vervang de spaties door + voordat je decodeert, en gebruik Base64URL voor waarden die via URL's worden doorgegeven.Hoe decodeer ik Base64 naar een afbeelding of bestand?
Wordt mijn Base64 naar een server verzonden?
Nee. Het decoderen gebeurt in je browser met JavaScript en de invoer verlaat je apparaat nooit. Dat is belangrijk als je tokens, geheime configuratiewaarden of persoonsgegevens decodeert.