Base64 Encoder and Decoder

A free online Base64 encoder and decoder for quick encoding and decoding, with convenient features like UTF-8 support, secure copy, and clear.

Encoderen (tekst → Base64)

Decoderen (Base64 → tekst)

Gebruiksaanwijzing

Base64 codeert binaire gegevens naar ASCII voor veilige overdracht en opslag. De grootte neemt ongeveer 33% toe.
Encoderen: Converteer platte tekst naar Base64 voor veiligere overdracht.
Decoderen: Herstel de oorspronkelijke tekst uit een Base64-tekenreeks.

Kenmerken

  • UTF-8-beveiligd: Correcte verwerking van niet-ASCII-tekens (via encodeURIComponent/unescape).
  • URL-veilige ondersteuning: Met één klik switchen tussen + / → - _, optioneel verwijderen van vullers =.
  • Voorverwerking bij decoderen: Negeer witruimte, herstel URL-veilige notatie automatisch en vul = automatisch aan.
  • Interactief: Invoer wordt automatisch verwerkt, met statistieken over lengte en groei.
  • Gebruiksvriendelijkheid: Snel kopiëren, wisselen tussen invoervelden, toetsenbordondersteuning en mobielvriendelijk.
  • Eenduidige stijl: Geen Tailwind dark:-klassen; volledig gebaseerd op DaisyUI-thema.

Snelle voorbeelden

Oorspronkelijke tekst:
Hello, World!
Base64:
SGVsbG8sIFdvcmxkIQ==

Wat is Base64?

Base64 is een methode om binaire data te coderen als ASCII-text, vaak gebruikt voor het overbrengen van afbeeldingen of bestandsinhoud via tekstprotocollen zoals JSON, XML en HTTP.

Het mapt elke 3 bytes naar 4 afdrukbare tekens, wat meestal leidt tot een groei van ongeveer 33% in grootte.

Standaard Base64 gebruikt A–Z a–z 0–9 + / en de padding-teken =; de URL-veilige variant vervangt + / door - _ om escape-problemen in URLs te voorkomen.

Veelvoorkomende toepassingen

  • Afbeeldingen of kleine bestanden embedden als Data URI.
  • Binaire data overbrengen tussen frontend en backend (bijv. versleutelde teksten, gecomprimeerde streams).
  • Tekst transformeren naar afdrukbare vorm om problemen met encoding of onzichtbare tekens te voorkomen.

Veelgestelde vragen en opmerkingen

  • Tekenset: Zorg in webomgevingen eerst dat tekst is verwerkt als UTF-8 (dit tool heeft dit ingebouwd).
  • URL-veilig: Gebruik voor URL-parameters of -paden de URL-veilige variant en overweeg de padding te verwijderen.
  • Padding: Sommige implementaties staan = toe te negeren; bij decoderen moet automatisch worden opgevuld tot een veelvoud van 4.
  • Regelafbrekingen: MIME Base64 kan regelafbrekingen bevatten; schakel "witruimte negeren" in bij decoderen.

Hoe Base64 te encoderen/decoderen via programmeertalen

JavaScript
Tekst → Base64 (UTF-8 veilig)
const encoded = btoa(unescape(encodeURIComponent(text)));
// URL-veilig
const urlSafe = encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '');
Decoderen (Base64 → tekst)
// Voorverwerking: Vervang -_ door +/
let b64 = input.replace(/-/g, '+').replace(/_/g, '/');
if (b64.length % 4 !== 0) b64 = b64.padEnd(b64.length + (4 - (b64.length % 4)), '=');
const text = decodeURIComponent(escape(atob(b64)));
PHP
Coderen (tekst → Base64)
$encoded = base64_encode($text);
// URL-veilig
$urlSafe = rtrim(strtr($encoded, '+/', '-_'), '=');
Decoderen (Base64 → tekst)
$b64 = strtr($input, '-_', '+/');
// Automatisch aanvullen met '='
if (strlen($b64) % 4 !== 0) $b64 .= str_repeat('=', 4 - (strlen($b64) % 4));
$text = base64_decode($b64);
Python
Coderen (tekst → Base64)
import base64

encoded = base64.b64encode(text.encode('utf-8')).decode('ascii')
# URL-veilige codering (zonder padding)
url_safe = encoded.replace('+','-').replace('/','_').rstrip('=')
Decoderen (Base64 → tekst)
import base64

def b64_decode(s: str) -> str:
    s = s.replace('-','+').replace('_','/')
    s += '=' * (-len(s) % 4)  # Automatisch aanvullen met '='
    return base64.b64decode(s).decode('utf-8')
Go
Coderen (tekst → Base64)
import (
    "encoding/base64"
)

enc := base64.StdEncoding.EncodeToString([]byte(text))
// URL-veilige codering (zonder padding)
urlEnc := base64.RawURLEncoding.EncodeToString([]byte(text))
Decoderen (Base64 → tekst)
import (
    "encoding/base64"
)

decBytes, err := base64.StdEncoding.DecodeString(enc)
// URL-veilige decodering (zonder padding)
decURL, err2 := base64.RawURLEncoding.DecodeString(urlEnc)
Rust
Coderen (tekst → Base64)
use base64::{engine::general_purpose, Engine as _};

let enc = general_purpose::STANDARD.encode(text.as_bytes());
// URL-veilige codering (zonder padding)
let url_enc = general_purpose::URL_SAFE_NO_PAD.encode(text.as_bytes());
Decoderen (Base64 → tekst)
use base64::{engine::general_purpose, Engine as _};

let dec_bytes = general_purpose::STANDARD.decode(&enc).unwrap();
let dec = String::from_utf8(dec_bytes).unwrap();

let url_dec = String::from_utf8(
    general_purpose::URL_SAFE_NO_PAD.decode(&url_enc).unwrap()
).unwrap();
Cargo-afhankelijkheid: base64 = "0.22"
Java
Coderen (tekst → Base64)
import java.nio.charset.StandardCharsets;
import java.util.Base64;

String enc = Base64.getEncoder().encodeToString(text.getBytes(StandardCharsets.UTF_8));
// URL-veilige codering (zonder padding)
String urlEnc = Base64.getUrlEncoder().withoutPadding().encodeToString(text.getBytes(StandardCharsets.UTF_8));
Decoderen (Base64 → tekst)
import java.nio.charset.StandardCharsets;
import java.util.Base64;

String dec = new String(Base64.getDecoder().decode(enc), StandardCharsets.UTF_8);
String urlDec = new String(Base64.getUrlDecoder().decode(urlEnc), StandardCharsets.UTF_8);

Data URI-voorbeeld

Embed afbeeldingen of kleine bestanden als Data URI:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...

Opmerking: Grote bestanden zijn niet geschikt voor Data URI, omdat dit de HTML/JSON-grootte aanzienlijk vergroot en de prestaties beïnvloedt.