Dekodiert
Kodiert
Über Base64
Base64 ist eine Kodierung, die 7-Bit druckbare ASCII-Zeichen verwendet. Sie wird häufig in E-Mails verwendet, um 8-Bit-Daten über 7-Bit-Datenwege zu übertragen.
Base64 teilt Daten in 6-Bit-Blöcke und wandelt sie in alphanumerische Zeichen (A-Z, a-z, 0-9) und Symbole (+, /) um. Es werden jeweils 4 Zeichen generiert. Wenn das Ende weniger als 4 Zeichen hat, wird mit Gleichheitszeichen (=) aufgefüllt.
RFC 1421 (PEM) schreibt einen Zeilenumbruch alle 64 Zeichen vor, RFC 2045 (MIME) alle 76 Zeichen.
Die Base64-Konvertierungstabelle lautet:
| 6-Bit-Daten | Base64-Zeichen |
|---|---|
| 000000 | A |
| 000001 | B |
| 000010 | C |
| 000011 | D |
| 000100 | E |
| 000101 | F |
| 000110 | G |
| 000111 | H |
| 001000 | I |
| 001001 | J |
| 001010 | K |
| 001011 | L |
| 001100 | M |
| 001101 | N |
| 001110 | O |
| 001111 | P |
| 010000 | Q |
| 010001 | R |
| 010010 | S |
| 010011 | T |
| 010100 | U |
| 010101 | V |
| 010110 | W |
| 010111 | X |
| 011000 | Y |
| 011001 | Z |
| 011010 | a |
| 011011 | b |
| 011100 | c |
| 011101 | d |
| 011110 | e |
| 011111 | f |
| 100000 | g |
| 100001 | h |
| 100010 | i |
| 100011 | j |
| 100100 | k |
| 100101 | l |
| 100110 | m |
| 100111 | n |
| 101000 | o |
| 101001 | p |
| 101010 | q |
| 101011 | r |
| 101100 | s |
| 101101 | t |
| 101110 | u |
| 101111 | v |
| 110000 | w |
| 110001 | x |
| 110010 | y |
| 110011 | z |
| 110100 | 0 |
| 110101 | 1 |
| 110110 | 2 |
| 110111 | 3 |
| 111000 | 4 |
| 111001 | 5 |
| 111010 | 6 |
| 111011 | 7 |
| 111100 | 8 |
| 111101 | 9 |
| 111110 | + |
| 111111 | / |
Beispiel für die Konvertierung von „Hello“ in Base64:
1. Binärdarstellung.
01001000 01100101 01101100 01101100 01101111 (bei US-ASCII / UTF-8)
2. In 6-Bit-Blöcke teilen. Letzten Block mit „0“ auffüllen.
010010 000110 010101 101100 011011 000110 111100
3. In Zeichen konvertieren. Mit „=“ auffüllen bis 4 Zeichen erreicht sind.
SGVs bG8=
4. Zeichen verbinden.
SGVsbG8=
MIME-Nachrichtenheader (RFC 2047)
DenCode unterstützt auch die Dekodierung von MIME-Headern (RFC 2047). Dies wird verwendet, wenn E-Mail-Betreffzeilen oder Empfänger Nicht-ASCII-Zeichen enthalten.
Subject: =?UTF-8?B?44K144Oz44OX44Or?=
Das dekodierte Ergebnis:
Subject: サンプル
JSON Web Token (RFC 7519)
JSON Web Token (JWT) ist ein Token-Format, das JSON-Daten mithilfe der Base64url-Kodierung kompakt darstellt. Es wird häufig für Authentifizierung und Autorisierung in Webanwendungen verwendet und ist in RFC 7519 standardisiert.
Ein JWT besteht aus drei Elementen, die durch Punkte (.) getrennt sind.
<Header>.<Payload>.<Signature>
Die Rolle jedes Elements ist wie folgt.
| Element | Beschreibung |
|---|---|
| Header | Ein JSON-Objekt mit Metadaten wie dem Token-Typ (typ) und dem Signaturalgorithmus (alg) |
| Payload | Ein JSON-Objekt mit Informationen wie Benutzer-ID und Ablaufzeit |
| Signature | Signaturdaten zur Erkennung von Manipulationen an Header und Payload |
Header und Payload sind jeweils Base64url-kodiert. Base64url ersetzt „+" durch „-" und „/" durch „_" und lässt das Padding „=" im Vergleich zum Standard-Base64 weg (RFC 4648). Dadurch können sie sicher in URLs und HTTP-Headern verwendet werden.
Zum Beispiel ergibt das Dekodieren des folgenden JWT den Header und Payload als JSON.
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
{
"alg": "HS256",
"typ": "JWT"
}
{
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022
}
Die wichtigsten Felder (Claims) in Header und Payload sind wie folgt.
| Feld | Name | Beschreibung |
|---|---|---|
| alg | Algorithm | Algorithmus für Signierung oder Verschlüsselung (z. B. HS256, RS256, ES256) |
| typ | Type | Token-Typ (normalerweise „JWT") |
| cty | Content Type | Inhaltstyp des Payloads (bei verschachtelten JWTs „JWT") |
| kid | Key ID | Kennung des Schlüssels zur Signaturverifizierung |
| jku | JWK Set URL | URL des JWK-Sets zur Signaturverifizierung |
| x5u | X.509 URL | URL der X.509-Zertifikatskette zur Signaturverifizierung |
| x5t | X.509 Certificate SHA-1 Thumbprint | SHA-1-Fingerabdruck des X.509-Zertifikats zur Signaturverifizierung |
| Feld | Name | Beschreibung |
|---|---|---|
| iss | Issuer | Aussteller des Tokens |
| sub | Subject | Subjekt des Tokens (z. B. Benutzer-ID) |
| aud | Audience | Empfänger des Tokens |
| exp | Expiration Time | Ablaufzeit des Tokens (Unix-Zeitstempel) |
| nbf | Not Before | Zeitpunkt, vor dem das Token nicht gültig ist (Unix-Zeitstempel) |
| iat | Issued At | Zeitpunkt der Ausstellung des Tokens (Unix-Zeitstempel) |
| jti | JWT ID | Eindeutiger Bezeichner des Tokens |