0

Gedecodeerd

Base64

Gecodeerd

Base64
Regeleinde

Over Base64

Base64 is een coderingsmethode die gebruikmaakt van 7-bit ASCII-tekens. Het wordt voornamelijk gebruikt in e-mail om 8-bit gegevens over te dragen via een 7-bit gegevenspad.

In Base64 worden gegevens in groepen van 6 bits verdeeld en weergegeven door ze om te zetten in alfanumerieke tekens (A-Z, a-z, 0-9) en symbolen (+, /). Conversie vindt plaats per 4 tekens, en als het einde minder dan 4 tekens is, wordt dit aangevuld met het is-gelijk-teken (=).

Bovendien specificeert RFC 1421 (PEM: Privacy-Enhanced Mail) een regeleinde elke 64 tekens, en RFC 2045 (MIME) elke 76 tekens.

De conversietabel naar Base64-tekens is als volgt.

6-bits dataBase64-teken
000000A
000001B
000010C
000011D
000100E
000101F
000110G
000111H
001000I
001001J
001010K
001011L
001100M
001101N
001110O
001111P
010000Q
010001R
010010S
010011T
010100U
010101V
010110W
010111X
011000Y
011001Z
011010a
011011b
011100c
011101d
011110e
011111f
100000g
100001h
100010i
100011j
100100k
100101l
100110m
100111n
101000o
101001p
101010q
101011r
101100s
101101t
101110u
101111v
110000w
110001x
110010y
110011z
1101000
1101011
1101102
1101113
1110004
1110015
1110106
1110117
1111008
1111019
111110+
111111/

Bijvoorbeeld, het resultaat van het converteren van "Hello" met Base64 is als volgt:

1. Converteer naar binaire weergave.

01001000 01100101 01101100 01101100 01101111  (In het geval van US-ASCII / UTF-8)

2. Verdeel in groepen van 6 bits. Als de laatste groep minder dan 6 bits is, vul dan aan met "0".

010010 000110 010101 101100 011011 000110 111100

3. Converteer naar tekens met behulp van de conversietabel. Converteer elke 4 tekens, en vul aan met "=" als het minder dan 4 tekens is.

SGVs bG8=

4. Verbind alle tekens om het resultaat van de Base64-conversie te vormen.

SGVsbG8=

MIME-berichtenkoptekstformaat (RFC 2047) voor e-mail

DenCode ondersteunt ook het decoderen van het volgende MIME-berichtenkoptekstformaat (RFC 2047). Dit formaat wordt gebruikt wanneer het onderwerp of het adres van een e-mail niet-ASCII-tekens bevat.

Subject: =?UTF-8?B?44K144Oz44OX44Or?=

Het resultaat na decodering is als volgt:

Subject: サンプル

JSON Web Token (RFC 7519)

JSON Web Token (JWT) is een tokenformaat dat JSON-gegevens compact weergeeft met behulp van Base64url-codering. Het wordt veel gebruikt voor authenticatie en autorisatie in webapplicaties en is gestandaardiseerd in RFC 7519.

Een JWT bestaat uit drie elementen gescheiden door punten (.).

<Header>.<Payload>.<Signature>

De rol van elk element is als volgt.

ElementBeschrijving
HeaderEen JSON-object met metadata zoals het tokentype (typ) en het ondertekeningsalgoritme (alg)
PayloadEen JSON-object met informatie zoals gebruikers-ID en verloopdatum
SignatureHandtekeninggegevens die worden gebruikt om manipulatie van de header en payload te detecteren

De header en payload zijn elk Base64url-gecodeerd. Base64url vervangt "+" door "-" en "/" door "_", en laat de opvulling "=" weg in vergelijking met standaard Base64 (RFC 4648). Hierdoor kunnen ze veilig worden opgenomen in URL's en HTTP-headers.

Het decoderen van de volgende JWT levert bijvoorbeeld de header en payload op als JSON.

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
{
  "alg": "HS256",
  "typ": "JWT"
}
{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}

De belangrijkste velden (claims) in de header en payload zijn als volgt.

VeldNaamBeschrijving
algAlgorithmAlgoritme dat wordt gebruikt voor ondertekening of versleuteling (bijv. HS256, RS256, ES256)
typTypeTokentype (meestal "JWT")
ctyContent TypeInhoudstype van de payload ("JWT" voor geneste JWT's)
kidKey IDIdentificatie van de sleutel die wordt gebruikt voor handtekeningverificatie
jkuJWK Set URLURL van de JWK Set die wordt gebruikt voor handtekeningverificatie
x5uX.509 URLURL van de X.509-certificaatketen die wordt gebruikt voor handtekeningverificatie
x5tX.509 Certificate SHA-1 ThumbprintSHA-1-vingerafdruk van het X.509-certificaat dat wordt gebruikt voor handtekeningverificatie
VeldNaamBeschrijving
issIssuerUitgever van het token
subSubjectOnderwerp van het token (bijv. gebruikers-ID)
audAudienceOntvanger van het token
expExpiration TimeVervaltijd van het token (Unix-tijdstempel)
nbfNot BeforeTijdstip waarvoor het token niet geldig is (Unix-tijdstempel)
iatIssued AtTijdstip van uitgifte van het token (Unix-tijdstempel)
jtiJWT IDUnieke identificatie van het token