Base64 encoderen en decoderen

Plak je tekst, kies richting en formaat en kopieer het resultaat: deze tool zet tekst om naar Base64 of Base64url en terug – letters met accenten en emoji correct als UTF-8 – en doet URL-encoding met procenttekens in de drie gangbare varianten. Ongeldige invoer wordt gemeld met de positie.

Om te decoderen plak je de Base64- of procent-gecodeerde tekst. Regeleinden in Base64 worden genegeerd.

Je tekst blijft in je browser: hij wordt niet verstuurd, niet opgeslagen en niet in de adresbalk gezet.

Resultaat

Resultaat
R3JvZXRqZXMgdWl0IEN1cmHDp2FvISDwn5GL
Grootte
23 tekens = 27 bytes UTF-8 → 36 tekens

Zo wordt het berekend

Base64 stelt willekeurige bytes voor met maar 64 afdrukbare tekens (A–Z, a–z, 0–9, + en /). Elke 3 bytes worden 4 tekens; blijven er aan het eind bytes over, dan vullen een of twee isgelijktekens het gat op (padding). Het resultaat is ongeveer een derde langer dan het origineel. Zo kunnen binaire gegevens mee door kanalen die alleen tekst accepteren: e-mailbijlagen, data-URL’s (data:image/png;base64,…), HTTP Basic Auth of JSON.

Base64 is geen versleuteling. Iedereen kan het zonder sleutel terugzetten naar het origineel. Vertrouw nooit op Base64 om inloggegevens te beschermen.

Base64 of Base64url

Het plusteken en de schuine streep hebben een speciale betekenis in URL’s en bestandsnamen. Base64url (RFC 4648 § 5) vervangt ze daarom door het minteken en de underscore en laat de padding meestal weg – JSON Web Tokens (JWT) worden zo gecodeerd. Voorbeeld: de bytes FB FF worden +/8= in Base64 en -_8 in Base64url.

Waarom UTF-8 belangrijk is

Base64 codeert bytes, geen letters. De tool zet je tekst daarom eerst om naar UTF-8: ‘ç’ wordt twee bytes, een emoji vier. De ingebouwde browserfunctie btoa() kan dat niet en geeft een fout bij tekens buiten Latin-1. Zijn de gedecodeerde bytes geen geldige UTF-8-tekst, dan toont de tool ze als hexadecimale waarden.

URL-encoding: drie varianten

Elk teken buiten de toegestane set wordt geschreven als % gevolgd door twee hexadecimale cijfers per UTF-8-byte (RFC 3986 § 2.1): spatie = %20, é = %C3%A9.

Alle omzettingen gebeuren in je browser. Je invoer wordt niet verstuurd, niet opgeslagen en niet in de adresbalk gezet.

Veelgestelde vragen

Hoe decodeer ik Base64?

Kies ‘Decoderen’ en het formaat ‘Base64’ en plak de code – de leesbare tekst verschijnt meteen. Bevat de code - en _, dan is het Base64url; kies dan dat formaat.

Is Base64 versleuteling?

Nee. Base64 is alleen een andere schrijfwijze van dezelfde gegevens en is zonder sleutel om te keren. Om gegevens te beschermen heb je echte versleuteling nodig, en voor wachtwoorden een wachtwoordhash.

Waarom eindigt Base64 vaak op = of ==?

Base64 werkt in groepen van 3 bytes. Blijven er aan het eind 1 of 2 bytes over, dan wordt de uitvoer aangevuld met == of =, zodat de lengte een veelvoud van 4 is. Base64url laat die padding meestal weg.

Wat is het verschil tussen encodeURI en encodeURIComponent?

encodeURI is bedoeld voor volledige adressen en laat / ? & = # met rust. encodeURIComponent codeert die ook en is de juiste keuze voor losse parameterwaarden – anders breekt een & in de waarde de URL.

Waarom is een spatie soms %20 en soms +?

In paden en volgens RFC 3986 schrijf je een spatie als %20. HTML-formulieren (application/x-www-form-urlencoded) schrijven hem als +. Bij decoderen moet je weten welke variant je hebt – een echt plusteken staat daar als %2B.

Hoeveel groter wordt een bestand in Base64?

Ongeveer 4/3 van de oorspronkelijke grootte: 3 bytes worden 4 tekens. Een afbeelding van 300 KB wordt in Base64 zo’n 400 KB, iets meer met MIME-regeleinden.

Bronnen en wettelijke basis

Bijgewerkt op:

Vergelijkbare tools