Base64 Codering
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.
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.
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-encryptiehulpmiddelBase64-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 statistiekenhulpmiddelStandard 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 Base64JWT 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-hulpmiddelDe 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-hulpmiddelbtoa 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.
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 afbeeldingBase64 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.
| Kenmerk | Standard | URL-Safe | MIME |
|---|---|---|---|
| Speciale tekens | + / | - _ | + / |
| Padding(=) | Gebruikt | Meestal weggelaten | Gebruikt |
| Regeleinden | Geen | Geen | Regel elke 76 tekens |
| Standaard | RFC 4648 §4 | RFC 4648 §5 | RFC 2045 |
| Typische scenario's | Data URI, algemene codering | JWT, URL-parameters, bestandsnamen | E-mailbijlagen, SMTP-overdracht |
| Codering | Aantal tekens | Tekenset kenmerken | Gegevensvergroting | Typisch gebruik |
|---|---|---|---|---|
Base16 (Hex) | 16 | 0-9, A-F | 100% | Debuggen, hash weergave |
Base32 | 32 | A-Z, 2-7(hoofdletters zonder verwarring) | 60% | DNS, TOTP-sleutels, QR-codes |
Base58 | 58 | Sluit verwarrende tekens 0/O/I/l uit | 38% | Bitcoin-adressen, cryptocurrency |
Base62 | 62 | A-Z, a-z, 0-9 | 34% | URL-verkorters, ID-codering |
Base64 | 64 | A-Z, a-z, 0-9, +, / | 33% | Data URI, MIME, JWT(URL-Safe variant) |
// 编码(支持 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 世界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)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));
}
}