Datei hochladen
  1. base64hub
  2. Base64-Glossar

Base64-Glossar

Einfache Definitionen der Begriffe rund um Base64, mit Links zu den Tools und Anleitungen, die tiefer gehen. Die Begriffe sind alphabetisch geordnet.

A bis C

Alphabet

Die Menge der Zeichen, die eine Kodierung schreibt, in Index-Reihenfolge. Standard-Base64 verwendet A-Z, a-z, 0-9, + und /, A steht also für 0 und / für 63. Siehe die Alphabet-Tabelle.

ASN.1

Abstract Syntax Notation One, eine Sprache zur Beschreibung von Datenstrukturen, verwendet von X.509-Zertifikaten, Schlüsseln und vielen Telekommunikationsprotokollen. ASN.1 legt die Struktur fest. Kodierregeln wie DER legen die Bytes fest.

Base16

Der Name für Hex in RFC 4648: Jedes Byte wird zu zwei Zeichen aus 0-9 A-F. Die Größe verdoppelt sich. Probieren Sie das Base16-Tool.

Base32

Eine Kodierung mit 32 Zeichen (A-Z und 2-7 in RFC 4648), die 5 Bytes in 8 Zeichen verwandelt, 60 % größer als die Eingabe. Alphabete ohne Unterscheidung von Groß- und Kleinschreibung machen sie passend für TOTP-Secrets und DNS-Namen. Probieren Sie den Base32-Encoder.

Base45

In RFC 9285 definiert, wandelt sie 2 Bytes in 3 Zeichen aus dem 45-Zeichen-Satz um, den QR-Codes im alphanumerischen Modus speichern. Das digitale COVID-Zertifikat der EU hat sie verwendet. Probieren Sie den Base45-Encoder.

Base58

Das Bitcoin-Alphabet mit 58 Zeichen: Base64 ohne 0, O, I, l, + und /. Es wandelt die gesamte Eingabe als eine große Zahl um, und jedes führende Nullbyte wird zu einer 1. Probieren Sie den Base58-Encoder.

Base58Check

Base58 mit einem Versionsbyte vorn und einer 4-Byte-Prüfsumme am Ende. Die Prüfsumme sind die ersten 4 Bytes von zweifach angewandtem SHA-256. Ältere Bitcoin-Adressen und private WIF-Schlüssel verwenden es. Siehe das Base58Check-Tool.

Base64

Eine Binär-zu-Text-Kodierung, die je 3 Bytes als 4 Zeichen aus einem 64-Zeichen-Alphabet schreibt und das Ende mit = auffüllt. Die Ausgabe ist etwa 33 % größer als die Eingabe. Beginnen Sie mit dem Encoder und dem Decoder, oder lesen Sie So funktioniert Base64.

Base64URL

Base64 mit - und _ anstelle von + und /, aus Abschnitt 5 von RFC 4648. Das Padding wird oft weggelassen. Verwendet in JWTs und URLs. Siehe Base64 vs. Base64URL und den Base64URL-Encoder.

Base85

Eine Familie von Kodierungen, die 4 Bytes als 5 Zeichen schreiben, 25 % Zuwachs. Ascii85 (Adobe, in PDF und PostScript), Z85 (ZeroMQ) und das von git verwendete Alphabet aus RFC 1924 sind die gängigen Varianten. Probieren Sie das Base85-Tool.

Base91

basE91, entwickelt von Joachim Henke, verwendet 91 druckbare ASCII-Zeichen und packt 13 oder 14 Bit in jedes Zeichenpaar. Damit liegt der Zuwachs zwischen etwa 14 % und 23 %, dem niedrigsten Wert hier, um den Preis eines Alphabets, das das doppelte Anführungszeichen und viele andere Satzzeichen enthält. Probieren Sie das Base91-Tool.

Basic Auth

HTTP-Basic-Authentifizierung (RFC 7617) sendet user:password in Base64 im Header Authorization: Aus Aladdin:open sesame wird Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==. Wer den Header sieht, kann ihn dekodieren, daher braucht Basic Auth HTTPS. Erzeugen oder lesen Sie einen solchen Header mit dem Basic-Auth-Generator und dem Decoder.

Binär-zu-Text-Kodierung (binary-to-text encoding)

Jedes Verfahren, das beliebige Bytes nur mit druckbaren Zeichen darstellt, damit die Daten Systeme überstehen, die für Text gebaut sind, etwa E-Mail, JSON oder URLs. Hex, Base32, Base64, Base85, uuencode und Quoted-printable sind allesamt Binär-zu-Text-Kodierungen. Ein Vergleich steht unter Base64 vs. Hex, Base32, Base58 und Base85.

BOM

Byte Order Mark, das Zeichen U+FEFF am Anfang einer Textdatei. In UTF-8 ist es EF BB BF (Base64 77u/), in UTF-16LE FF FE. Decoder, die nicht damit rechnen, zeigen es als  oder als verirrtes unsichtbares Zeichen an.

Kanonische Kodierung (canonical encoding)

Die eine „korrekte“ kodierte Form bestimmter Daten. Bei Base64 verlangt sie, dass die ungenutzten Bits vor dem Padding null sind (RFC 4648, Abschnitt 3.5): SGk/Pg== ist kanonisch, SGk/Ph== ergibt in toleranten Decodern dieselben Bytes, ist es aber nicht.

Zeichensatz (Charset)

Die Zeichenkodierung, die Text auf Bytes abbildet, etwa UTF-8, UTF-16LE oder Windows-1252. Base64 speichert Bytes; um Base64 zu Text zu dekodieren, muss man also wissen, in welchem Zeichensatz der Text gespeichert wurde. Eine falsche Annahme erzeugt Zeichensalat wie Café. Mit dem Tool Base64 in Text können Sie den Zeichensatz wechseln.

CRLF

Carriage Return plus Line Feed, die Bytes 0D 0A. MIME verlangt CRLF zwischen Base64-Zeilen, während Unix-Tools meist nur LF (0A) schreiben. Tolerante Decoder ignorieren beides, strenge lehnen es ab.

CSP-Nonce

Ein Zufallswert in einem Content-Security-Policy-Header (script-src 'nonce-…'), der nur Inline-Skripte mit demselben nonce-Attribut zulässt. Er wird in Base64 geschrieben, muss für jede Antwort neu sein und sollte mindestens 128 Bit Zufall enthalten. Erzeugen Sie einen mit dem CSP-Nonce-Generator.

D bis J

Data-URI

Eine URL, die die Daten selbst enthält, statt auf sie zu verweisen, definiert in RFC 2397: data:image/png;base64,iVBORw0KGgo…. Nützlich für kleine Bilder und Icons in HTML und CSS. Siehe den Data-URI-Generator, den Parser und Performance von Data-URIs.

Deflate

Der Kompressionsalgorithmus (RFC 1951) in ZIP, gzip, zlib und PNG. „Raw Deflate“ bezeichnet den komprimierten Datenstrom ohne Header oder Prüfsumme drumherum. Komprimieren und kodieren Sie mit dem zlib- und Deflate-Tool.

DER

Distinguished Encoding Rules, die strikte binäre Kodierung von ASN.1-Strukturen nach ITU-T X.690. Zertifikate und Schlüssel sind DER-Bytes. Eine DER-Struktur beginnt meist mit 30 (einer SEQUENCE), weshalb PEM-Inhalte mit M beginnen, oft mit MII.

gzip

Ein Dateiformat (RFC 1952), das Deflate-komprimierte Daten mit einem 10-Byte-Header und einer CRC-32-Prüfsumme umgibt. Es beginnt mit den Bytes 1F 8B, gzip in Base64 beginnt also mit H4sI. Verwenden Sie gzip und Base64 zum Komprimieren und gzip-Base64 dekodieren für den Rückweg.

Hex

Hexadezimal: Jedes Byte wird als zwei Ziffern aus 0-9 und a-f geschrieben, zum Beispiel 48 65 6c 6c 6f für Hello. Es lässt sich Byte für Byte leicht lesen und ist doppelt so groß wie die Eingabe. Umwandeln können Sie mit Base64 in Hex und Hex in Base64.

JWE

JSON Web Encryption (RFC 7516). Ein verschlüsseltes Token, dessen kompakte Form aus fünf Base64URL-Teilen besteht: Header, verschlüsselter Schlüssel, Initialisierungsvektor, Chiffretext und Authentifizierungs-Tag. Anders als bei einem JWS lässt sich der Inhalt ohne Schlüssel nicht lesen.

JWS

JSON Web Signature (RFC 7515). Eine signierte Nachricht mit drei Base64URL-Teilen: Header, Payload und Signatur. Die Payload kann jeder lesen. Die Signatur beweist nur, dass sie nicht verändert wurde.

JWT

JSON Web Token (RFC 7519), eine Menge von Claims in JSON, transportiert in einem JWS oder JWE. Die meisten JWTs, die Ihnen begegnen, sind JWS-Tokens, die mit eyJ beginnen. Dekodieren Sie eines mit dem JWT-Decoder, erstellen Sie eines mit dem JWT-Encoder und lesen Sie Base64 in JWT.

L bis Q

Zeilenumbruch (line wrapping)

Das Einfügen von Zeilenumbrüchen in lange Base64-Ausgaben. MIME bricht nach höchstens 76 Zeichen um, PEM nach genau 64. GNU base64 bricht standardmäßig nach 76 um (-w 0 schaltet das ab), openssl base64 nach 64 (-A schaltet das ab). Der MIME-Encoder bricht für Sie um.

Magic Number

Eine feste Bytefolge am Anfang einer Datei, die ihr Format kennzeichnet, etwa %PDF- für PDF oder 89 50 4E 47 für PNG. Weil Base64 jeweils 3 Bytes kodiert, werden Magic Numbers zu erkennbaren Base64-Präfixen. Siehe Häufige Base64-Präfixe und Base64 in Datei.

MIME

Multipurpose Internet Mail Extensions (RFC 2045 bis 2049), der Standard, mit dem E-Mails Anhänge und Nicht-ASCII-Text transportieren können. Sein Content-Transfer-Encoding base64 ist der Weg, auf dem Anhänge in einer reinen Textnachricht reisen. Siehe Base64 in E-Mails und den EML-Decoder.

Padding

Die =-Zeichen am Ende von Base64, die die letzte 4-Zeichen-Gruppe auffüllen: == nach 1 übrig gebliebenen Byte, = nach 2. Manche Formate lassen es weg. Lesen Sie die Anleitung zum Padding.

PEM

Privacy-Enhanced Mail, ursprünglich ein Standard für sichere E-Mail (RFC 1421). Heute bezeichnet der Name dessen Textformat für Schlüssel und Zertifikate: Base64 von DER-Bytes zwischen den Zeilen -----BEGIN CERTIFICATE----- und -----END CERTIFICATE-----, umgebrochen nach 64 Zeichen (RFC 7468). Sehen Sie sich eines mit dem Zertifikat-Decoder an.

Quoted-printable

Die andere MIME-Transferkodierung. Sie lässt druckbares ASCII unverändert und schreibt andere Bytes als = plus zwei Hex-Ziffern, aus Café in UTF-8 wird also Caf=C3=A9. Effizient bei überwiegend ASCII-Text, verschwenderisch bei Binärdaten. Probieren Sie das Quoted-printable-Tool.

R bis Z

Radix-64

Der Name, den OpenPGP für seine ASCII-Armor verwendet: Standard-Base64 plus eine optionale Prüfsummenzeile, die mit = beginnt und eine CRC-24 in Base64 enthält. Siehe Base64-Standards.

SRI

Subresource Integrity, eine Browserfunktion, die ein heruntergeladenes Skript oder Stylesheet gegen einen Hash im Attribut integrity prüft, geschrieben als Algorithmusname plus Base64-Digest: sha384-…. Unterstützt werden SHA-256, SHA-384 und SHA-512. Erzeugen Sie Werte mit dem SRI-Hash-Generator.

uuencode

Unix-to-Unix Encoding, ein Binär-zu-Text-Format, älter als MIME. Jede Zeile beginnt mit einem Längenzeichen, und die Datenzeichen stammen aus ASCII 32 bis 95, es enthält also Satzzeichen, die das Base64 von MIME vermeidet. Siehe das uuencode-Tool.

UTF-8

Die vorherrschende Textkodierung im Web. ASCII-Zeichen belegen ein Byte, andere Zeichen zwei bis vier. Wenn ein Tool „Text in Base64“ sagt, meint es fast immer UTF-8-Bytes in Base64: é ist C3 A9. Siehe UTF-8 in Base64.

UTF-16LE

UTF-16 mit dem niederwertigen Byte zuerst, das interne String-Format von Windows und .NET. ASCII-Text in UTF-16LE hat nach jedem Zeichen ein Nullbyte, aus Hello wird also SABlAGwAbABvAA==, voller A. -EncodedCommand von PowerShell erwartet es. Siehe UTF-16 in Base64 und den PowerShell-Decoder.

Z85

Die Base85-Variante von ZeroMQ (ZeroMQ RFC 32). Sie kodiert 4 Bytes als 5 Zeichen, vermeidet Anführungszeichen und Backslash, damit die Ausgabe in String-Literalen im Quellcode stehen kann, und verlangt Eingaben in Vielfachen von 4 Bytes. Probieren Sie das Z85-Tool.

zlib

Eine dünne Hülle (RFC 1950) um Deflate-Daten: ein 2-Byte-Header und eine Adler-32-Prüfsumme. Der Header beginnt meist mit 78, zlib-Daten in Base64 beginnen daher je nach Kompressionsstufe mit eJ, eN, eF oder eA. Verwenden Sie das zlib-Tool.

Häufige Fragen

Was ist der Unterschied zwischen Kodierung und Verschlüsselung?

Eine Kodierung ändert nur, wie Daten geschrieben werden, und jeder kann sie umkehren. Eine Verschlüsselung braucht zum Umkehren einen Schlüssel. Base64 ist eine Kodierung. Siehe Kodierung vs. Verschlüsselung.

Ist Base64 dasselbe wie Radix-64?

Radix-64 ist der Name, den OpenPGP für Base64 mit einer optionalen CRC-24-Prüfsummenzeile verwendet. Alphabet und Bit-Anordnung sind dieselben wie beim Standard-Base64.

Was ist der Unterschied zwischen PEM und DER?

DER ist die binäre Kodierung eines Zertifikats oder Schlüssels. PEM sind dieselben DER-Daten in Base64, nach 64 Zeichen umgebrochen, zwischen den Zeilen -----BEGIN und -----END. Umwandeln können Sie mit PEM in DER und DER in PEM.