logo
GeekFormat

Base64 Codering

Invoertekst
0 tekens

Gratis online Base64 codeer- en decodeerhulpmiddel. Ondersteunt UTF-8/ASCII/ISO-8859-1 tekensets met drie varianten: Standard, URL-Safe en MIME. Toont realtime gegevensvergroting, MIME-regeleinden voldoen aan RFC 2045 standaard.

Gerelateerde aanbevelingen

Toepassingsgevallen

  • JWT-foutopsporing: decodeer de header- en payload-segmenten van JWT (Base64URL-formaat) om de inhoud van tokenclaims te bekijken
  • Basic Auth: codeer gebruikersnaam:wachtwoord als HTTP Basic-authenticatiereferenties
  • OAuth-ontwikkeling: genereer code_verifier of verifieer code_challenge in PKCE-scenario's
  • API-foutopsporing: codeer JSON-gegevens of decodeer Base64-velden die door API's worden geretourneerd
  • Data URI afbeeldingsinbedding: converteer kleine pictogrammen naar data:image/...;base64,... formaat voor inbedding in CSS/HTML
  • E-mailbijlagecodering: codeer binaire e-mailbijlagen in MIME Base64-formaat

Functies

  • Een-klik Encode/Decode schakeling: vrij schakelen tussen codeer- en decodeermodi, uitvoer wordt direct invoer voor circulaire verwerking
  • Ondersteuning voor drie tekensets: UTF-8 (Chinees/Japans/emoji), ASCII, ISO-8859-1, professionele dekking van meerdere scenario's
  • Drie varianten voor uitvoer: Standard (standaard), URL-Safe (veilig voor JWT/OAuth/PKCE), MIME (RFC 2045 standaard met 76 tekens regeleinden)
  • Realtime volumestatistieken: toont realtime aantal invoer/uitvoer tekens en vergrotingsfactor (Base64 vergroot volume ongeveer 33%)
  • Duidelijke foutmeldingen: wanneer tekens buiten bereik zijn, worden specifieke foutmeldingen weergegeven in plaats van eenvoudige fout
  • Versleepbare scheidingslijn: op pc kan de verhouding van linker- en rechterbewerkingsgebieden worden aangepast om te focussen op de huidige taak
  • Onafhankelijke tabbladen voor mobiel: telefoon/tablet-gebruikers schakelen onafhankelijk tussen invoer- en uitvoergebied voor soepele ervaring

Hoe te gebruiken

  1. Kies modus: klik op Encode (coderen) of Decode (decoderen) om de verwerkingsrichting te wijzigen
  2. Kies variant: Standard (standaard), URL-Safe (JWT/OAuth), MIME (e-mailformaat met 76 tekens regeleinden)
  3. Voer inhoud in: plak tekst of Base64-tekenreeks, deze wordt automatisch realtime verwerkt
  4. Bekijk statistieken: onderaan worden het aantal tekens en de volumevergrotingsfactor weergegeven (codering vergroot volume ongeveer 33%)
  5. Kopieer resultaat: kopieer de Base64-tekenreeks of gedecodeerde tekst met één klik

Veelgestelde vragen

Is Base64-codering hetzelfde als encryptie?

Nee. Base64 zet tekst alleen om in een andere omkeerbare representatievorm; iedereen kan het terug decoderen naar de originele tekst. Als het om gevoelige gegevens gaat (wachtwoorden, tokens), gebruik dan een echt encryptieschema zoals AES. Base64 is alleen geschikt voor gegevensformaattransformatie, om binaire gegevens gemakkelijker via tekstsysteem te verzenden.

AES-encryptiehulpmiddel

Hoeveel groter worden gegevens na Base64-codering?

Base64-codering vergroot het originele gegevensvolume met ongeveer 33%. Dit komt omdat elke 3 bytes (24 bits) worden gecodeerd tot 4 Base64-tekens. Bijvoorbeeld: 100 bytes tekst wordt na codering ongeveer 133 bytes. De vergrotingsfactor wordt realtime weergegeven onderaan het hulpmiddel zodat u de gegevensgrootte kunt inschatten. Voorbeeld: `Hello` → `SGVsbG8=` (volume +33%).

Base64 statistiekenhulpmiddel

Wat is het verschil tussen de drie varianten: Standard, URL-Safe en MIME?

Standard is de standaard Base64, die de tekens A-Z, a-z, 0-9, +, / gebruikt. URL-Safe vervangt +/ door -_, waardoor het geschikt is voor URL-parameters en JWT-tokens. MIME voegt elke 76 tekens een regeleinde in, voldoet aan de RFC 2045 e-mailstandaard, geschikt voor e-mailbijlagen en meerregelige tekst.

URL-Safe Base64MIME Base64

Hoe decodeer ik de header of payload van een JWT?

JWT maakt gebruik van Base64URL-codering (URL-Safe variant). Na het selecteren van de URL-Safe modus plakt u eenvoudig het eerste segment (header) of tweede segment (payload) van de JWT om te decoderen. Let op: het derde segment van de JWT is de handtekening en moet hier niet worden gedecodeerd of geverifieerd.

JWT-hulpmiddel

Wat is Padding (opvulling) in Base64?

De lengte van het Base64-coderingsresultaat moet een veelvoud van 4 zijn. Wanneer de invoerlengte geen veelvoud van 3 is, wordt het einde opgevuld met het =-teken. De URL-Safe variant gebruikt geen padding. Het hulpmiddel verwerkt padding automatisch en verwijdert ook automatisch =-tekens bij het decoderen.

Base64 Padding-hulpmiddel

Waarom ondersteunen btoa en atob in JavaScript geen Chinees?

btoa en atob zijn native browser-API's die werken met de Latin-1 (ISO-8859-1) tekenset, waarbij elk teken 1 byte in beslag neemt. Chinese tekens nemen 3 bytes in beslag in UTF-8, dus directe invoer zal een fout veroorzaken. De oplossing is om eerst encodeURIComponent te gebruiken om Chinees om te zetten naar %xx UTF-8 byte-reekspatroon, vervolgens unescape te gebruiken om om te zetten naar Latin-1-tekenreeks en tenslotte btoa te gebruiken voor codering.

Wat is Data URI Scheme? Hoe afbeeldingen inbedden met Base64?

Data URI is een URI-formaat waarmee kleine bestanden direct in een URL kunnen worden ingebed, syntaxis: `data:[<mediatype>][;base64],<data>`. Bijvoorbeeld: `data:image/png;base64,iVBORw0KGgo...`. Vaak gebruikt voor het inbedden van kleine pictogrammen, CSS-achtergrondafbeeldingen enz. om HTTP-verzoeken te verminderen. Maar Base64 vergroot het volume met 33%, dus alleen geschikt voor kleine bestanden; grote bestanden moeten gewone URL's gebruiken.

Data URI-hulpmiddelBase64 naar afbeelding

Wat is Base64-codering?

Base64 is een binaire-naar-tekst coderingsschema gebaseerd op 64 afdrukbare ASCII-tekens, voor het eerst gedefinieerd door RFC 2045 (MIME-standaard). Base64 zet elke 3 bytes (24 bits) om in 4 Base64-tekens (A-Z, a-z, 0-9, +, /), waardoor binaire gegevens veilig kunnen worden verzonden via systemen die alleen tekst ondersteunen, zoals HTTP-headers, JSON-payloads, XML-documenten of URL-queryparameters.

**Base64 is geen encryptie**, het biedt alleen gegevensformaattransformatie, iedereen kan het eenvoudig decoderen. Als u gevoelige gegevens moet beschermen, gebruik dan een echt encryptieschema zoals AES. Typische toepassingen van Base64 zijn onder andere: HTTP Basic Authentication (`Authorization: Basic dXNlcjpwYXNz`), JWT-token header- en payload-segmenten (Base64URL-formaat), Data URI (`data:image/png;base64,...`), MIME-codering van e-mailbijlagen enz.

**URL-Safe Base64** (RFC 4648 §5) vervangt de +/ van standaard Base64 door -_ en laat meestal de padding = weg. Hierdoor kan het coderingsresultaat veilig voorkomen in URL's, bestandspaden of JSON-velden. JWT-tokens, OAuth PKCE code_verifier en AWS Signature V4 gebruiken allemaal URL-Safe Base64-codering.

**MIME-regeleinden** is de RFC 2045-standaard, die bepaalt dat elke regel niet meer dan 76 tekens mag bevatten. Wanneer Base64-inhoud wordt gebruikt in e-mail of bepaalde scenario's die regeleinden vereisen voor weergave, zal de MIME-variant automatisch regeleindetekens (`\n`) invoegen elke 76 tekens. Dit is het standaardformaat voor de overdracht van e-mailbijlagen.

Het hulpmiddel maakt gebruik van de browser's native **btoa/atob API's** gecombineerd met veilige UTF-8 verwerkingslogica, zodat multi-byte tekens zoals Chinees, Japans en emoji correct worden gecodeerd. Alle berekeningen worden lokaal uitgevoerd, gegevens worden niet naar servers verzonden. Open het netwerkpaneel in de browserontwikkelaarshulpmiddelen om te controleren dat er geen externe verzoeken zijn gedurende het hele proces.

术语表

RFC 4648
De officiële standaard voor Base16/Base32/Base64-codering, gepubliceerd door IETF. Definieert twee alfabetten: standaard Base64 en URL-Safe Base64, evenals regels voor padding, regeleinden, niet-alfabet tekens verwerking enz. Is de de facto geldende standaard voor Base64-codering, ter vervanging van de eerdere RFC 3548.URL-Safe Base64-hulpmiddelBase64 Padding-hulpmiddel
RFC 2045 (MIME)
De standaard voor Multipurpose Internet Mail Extensions (MIME). Base64 voor het eerst toegepast als coderingsmethode voor e-mailinhoudsoverdracht. Bepaalt dat Base64-codering niet meer dan 76 tekens per regel mag bevatten en wordt gescheiden door CRLF, bekend als de MIME Base64-variant.MIME Base64-hulpmiddel
Base64URL (URL-Safe Base64)
De URL-veilige variant gedefinieerd in RFC 4648 §5. Vervangt de + van standaard Base64 door - en / door _, en laat meestal het padding-teken = weg. Op grote schaal gebruikt in scenario's zoals JWT-tokens, OAuth PKCE, URL-parameters en bestandsnamen.URL-Safe Base64-hulpmiddelJWT-hulpmiddel
MIME Base64
De Base64-variant die voldoet aan de RFC 2045-standaard, die elke 76 tekens een regeleindeteken (CRLF) invoegt. Voornamelijk gebruikt voor de overdracht van e-mailbijlagen, omdat vroege SMTP-protocollen beperkingen hadden op de lengte van een enkele regel.MIME Base64-hulpmiddel
Padding (opvulling)
De lengte van het Base64-coderingsresultaat moet een veelvoud van 4 zijn. Wanneer het aantal invoerbytes geen veelvoud van 3 is, wordt het einde opgevuld met het =-teken. Standaard Base64 gebruikt padding, Base64URL laat het meestal weg.Base64 Padding-hulpmiddel
Base64-alfabet
De set van 64 tekens die worden gebruikt bij Base64-codering. Het standaard Base64-alfabet: A-Z (26), a-z (26), 0-9 (10), +, /, in totaal 64 tekens, plus het opvulteken =.
btoa / atob
Native browser-API's voor Base64 codering/decodering. btoa (binary to ASCII) wordt gebruikt voor codering, atob (ASCII to binary) voor decodering. Let op: deze API's ondersteunen alleen de Latin-1 tekenset. Voor Chinese verwerking moeten ze worden gecombineerd met UTF-8 hercodering.
Data URI Scheme
Een URI-formaat waarmee kleine bestanden direct in een URL kunnen worden ingebed, formaat: data:[<mediatype>][;base64],<data>. Vaak gebruikt voor het inbedden van kleine pictogrammen en CSS-achtergrondafbeeldingen om HTTP-verzoeken te verminderen.Data URI-hulpmiddelBase64 naar afbeelding
HTTP Basic Authentication
Een authenticatiemethode in het HTTP-protocol. Gebruikersnaam en wachtwoord worden gecombineerd met een dubbele punt, gecodeerd in Base64 en verzonden in de Authorization-header van het verzoek. Formaat: Authorization: Basic <base64(gebruikersnaam:wachtwoord)>.Auth-headerbouwer
Base64 vergrotingsfactor
De verhouding waarmee het gegevensvolume toeneemt na Base64-codering. Elke 3 bytes (24 bits) worden gecodeerd tot 4 Base64-tekens, dus het volume neemt toe met ongeveer 33% (4/3 ≈ 1,333). Met padding is de vergrotingsfactor iets hoger.

Vergelijking van drie Base64 varianten

KenmerkStandardURL-SafeMIME
Speciale tekens+ /- _+ /
Padding(=)GebruiktMeestal weggelatenGebruikt
RegeleindenGeenGeenRegel elke 76 tekens
StandaardRFC 4648 §4RFC 4648 §5RFC 2045
Typische scenario'sData URI, algemene coderingJWT, URL-parameters, bestandsnamenE-mailbijlagen, SMTP-overdracht

Vergelijkingstabel Base-serie coderingen

CoderingAantal tekensTekenset kenmerkenGegevensvergrotingTypisch gebruik
Base16 (Hex)160-9, A-F100%Debuggen, hash weergave
Base3232A-Z, 2-7(hoofdletters zonder verwarring)60%DNS, TOTP-sleutels, QR-codes
Base5858Sluit verwarrende tekens 0/O/I/l uit38%Bitcoin-adressen, cryptocurrency
Base6262A-Z, a-z, 0-934%URL-verkorters, ID-codering
Base6464A-Z, a-z, 0-9, +, /33%Data URI, MIME, JWT(URL-Safe variant)

Code Examples

JavaScript Base64 codering (ondersteunt Chinese UTF-8)

// 编码(支持 UTF-8 中文)
function b64Encode(str) {
  return btoa(unescape(encodeURIComponent(str)));
}

// 解码(支持 UTF-8 中文)
function b64Decode(str) {
  return decodeURIComponent(escape(atob(str)));
}

// URL-Safe 编码(用于 JWT / OAuth)
function b64UrlEncode(str) {
  return btoa(unescape(encodeURIComponent(str)))
    .replace(/\+/g, '-')
    .replace(/\//g, '_')
    .replace(/=+$/, '');
}

console.log(b64Encode('Hello 世界')); // SGVsbG8g5LiW55WM
console.log(b64Decode('SGVsbG8g5LiW55WM')); // Hello 世界

Python Base64 codering

import base64

# Standard 编码(UTF-8)
encoded = base64.b64encode('Hello 世界'.encode('utf-8'))
print(encoded.decode())  # SGVsbG8g5LiW55WM

# Standard 解码
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded)  # Hello 世界

# URL-Safe 编码(用于 JWT / OAuth)
url_safe = base64.urlsafe_b64encode('Hello 世界'.encode('utf-8'))
print(url_safe.decode())  # SGVsbG8g5LiW55WM(无 padding 需手动去除)

# 去除 padding(JWT 标准做法)
url_safe_no_pad = url_safe.decode().rstrip('=')
print(url_safe_no_pad)

Java Base64 codering

import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class Base64Example {
    public static void main(String[] args) {
        String text = "Hello 世界";

        // Standard 编码
        String encoded = Base64.getEncoder()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
        System.out.println(encoded); // SGVsbG8g5LiW55WM

        // Standard 解码
        String decoded = new String(
            Base64.getDecoder().decode(encoded), StandardCharsets.UTF_8);
        System.out.println(decoded); // Hello 世界

        // URL-Safe 编码(用于 JWT / URL)
        String urlSafe = Base64.getUrlEncoder().withoutPadding()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
        System.out.println(urlSafe);

        // MIME 编码(76字符换行)
        String mime = Base64.getMimeEncoder()
            .encodeToString(text.getBytes(StandardCharsets.UTF_8));
    }
}

Authoritative References