RFC 4648 - Base16-, Base32- und Base64-Datenkodierungen
Veröffentlicht: Oktober 2006
Status: Standards Track Protocol
Autor: S. Josefsson (SJD)
Macht obsolet: RFC 3548
Zusammenfassung (Abstract)
Dieses Dokument beschreibt die häufig verwendeten Base64-, Base32- und Base16-Kodierungsschemata. Es erörtert auch die Verwendung von Zeilenvorschüben in kodierten Daten, die Verwendung von Auffüllung in kodierten Daten, die Verwendung von nicht-alphabetischen Zeichen in kodierten Daten, die Verwendung verschiedener Kodierungsalphabete und kanonische Kodierungen.
Status dieses Memorandums (Status of This Memo)
Dieses Dokument spezifiziert ein Internet Standards Track Protocol für die Internet-Community und bittet um Diskussion und Verbesserungsvorschläge. Bitte beziehen Sie sich auf die aktuelle Ausgabe der "Internet Official Protocol Standards" (STD 1) für den Standardisierungsstatus und Status dieses Protokolls. Die Verbreitung dieses Memorandums ist unbegrenzt.
Urheberrechtshinweis (Copyright Notice)
Copyright (C) The Internet Society (2006).
Inhaltsverzeichnis (Contents)
Hauptabschnitte
- 1. Einleitung
- 2. In diesem Dokument verwendete Konventionen
- 3. Implementierungsunterschiede
- 3.1 Zeilenvorschübe in kodierten Daten
- 3.2 Auffüllung kodierter Daten
- 3.3 Interpretation nicht-alphabetischer Zeichen in kodierten Daten
- 3.4 Wahl des Alphabets
- 3.5 Kanonische Kodierung
- 4. Base 64 Kodierung
- 5. Base 64 Kodierung mit URL- und dateinamensicherem Alphabet
- 6. Base 32 Kodierung
- 7. Base 32 Kodierung mit erweitertem Hex-Alphabet
- 8. Base 16 Kodierung
- 9. Abbildungen und Beispiele
- 10. Testvektoren
- 11. ISO C99 Implementierung von Base64
- 12. Sicherheitserwägungen
- 13. Änderungen seit RFC 3548
- 14. Danksagungen
- 15. Kopierbedingungen
- 16. Referenzen
- 16.1 Normative Referenzen
- 16.2 Informative Referenzen
Warum Base-Kodierung wichtig ist
Base-Kodierung ist grundlegend für die Datenübertragung im Internet. Sie konvertiert binäre Daten in Textformat und ermöglicht die Übertragung und Speicherung in textbasierten Umgebungen.
Hauptanwendungsfälle
| Kodierung | Hauptzweck | Typische Anwendungen |
|---|---|---|
| Base64 | Allgemeine binäre Kodierung | MIME E-Mail-Anhänge, JWT-Token, Daten-URIs |
| Base64URL | URL-sichere Kodierung | JWT, OAuth-Token, URL-Parameter |
| Base32 | Menschenlesbare Kodierung | TOTP-Schlüssel, Crockford-Kodierung |
| Base16 | Hexadezimale Kodierung | Hash-Anzeige, Debug-Ausgabe |
Base64 Schnellreferenz
Standard Base64 Kodierung
Zeichensatz: A-Z, a-z, 0-9, +, /
Auffüllzeichen: =
Ausgabelänge: Eingabebytes × 4/3 (aufgerundet auf Vielfaches von 4)
Beispiel:
Eingabe: "Hello"
Ausgabe: "SGVsbG8="
Kodierungsprozess:
H e l l o
01001000 01100101 01101100 01101100 01101111
↓ Nach 6 Bits gruppieren
010010 000110 010101 101100 011011 000110 1111
↓ Tabelle nachschlagen
S G V s b G 8=
Base64URL Kodierung (RFC 4648 §5)
Zeichensatz: A-Z, a-z, 0-9, -, _
Auffüllzeichen: = (normalerweise weggelassen)
Unterschiede zu Standard-Base64:
+ → -
/ → _
Verwendung: JWT, OAuth-Token, URL-Parameter
Base-Kodierung Referenztabellen
Base64 Standard-Zeichentabelle
Wert Zch Wert Zch Wert Zch Wert Zch
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 i 50 y
3 D 19 T 35 j 51 z
4 E 20 U 36 k 52 0
5 F 21 V 37 l 53 1
6 G 22 W 38 m 54 2
7 H 23 X 39 n 55 3
8 I 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 +
15 P 31 f 47 v 63 /
Auffüllzeichen: =
Reale Anwendungen
JWT (JSON Web Token)
JWT-Struktur:
header.payload.signature
Jeder Teil ist Base64URL-kodiert:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIn0.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Daten-URI
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA..." />
MIME E-Mail-Anhänge
Content-Type: application/pdf
Content-Transfer-Encoding: base64
JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9UeXBlIC9DYXRhbG9n...
Verwandte Ressourcen (Related Resources)
- Offizielle Quelle: RFC 4648 (TXT)
- Offizielle Seite: RFC 4648 DataTracker
- Errata: RFC Editor Errata
Verwandte RFCs
- RFC 2045 - MIME Part One (Definiert Base64 für MIME)
- RFC 3548 - Base Encodings (Veraltet durch RFC 4648)
- RFC 7515 - JSON Web Signature (Verwendet Base64URL)
- RFC 7519 - JSON Web Token (Verwendet Base64URL)