0

Resultado Decodificado

Base64

Resultado Codificado

Base64
Salto de línea

Sobre Base64

Base64 es un método de codificación que utiliza caracteres ASCII imprimibles de 7 bits. Se utiliza principalmente en correo electrónico para transferir datos de 8 bits a través de rutas de datos de 7 bits.

En Base64, los datos se dividen en grupos de 6 bits, que se convierten en caracteres alfanuméricos (A-Z, a-z, 0-9) y símbolos (+, /). Se convierten cada 4 caracteres, y si el final tiene menos de 4 caracteres, se rellena con el signo igual (=).

Además, RFC 1421 (PEM: Privacy-Enhanced Mail) especifica saltos de línea cada 64 caracteres, y RFC 2045 (MIME) especifica saltos de línea cada 76 caracteres.

La tabla de conversión a caracteres Base64 es la siguiente:

Datos de 6 bitsCarácter Base64
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/

Por ejemplo, convertir "Hello" en Base64 da el siguiente resultado:

1. Convertir a representación binaria.

01001000 01100101 01101100 01101100 01101111  (Para US-ASCII / UTF-8)

2. Dividir en grupos de 6 bits. Si hay menos de 6 bits, rellenar el final con "0".

010010 000110 010101 101100 011011 000110 111100

3. Convertir a caracteres usando la tabla de conversión. Se convierten cada 4 caracteres, y si hay menos de 4 caracteres, se rellena el final con "=".

SGVs bG8=

4. Unir todos los caracteres para obtener el resultado de la conversión Base64.

SGVsbG8=

Formato de encabezado de mensaje MIME para correo electrónico (RFC 2047)

DenCode también soporta la decodificación del formato de encabezado de mensaje MIME (RFC 2047) como se muestra a continuación. Este formato se utiliza cuando el asunto o el destinatario del correo electrónico contienen caracteres no ASCII.

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

El resultado después de la decodificación es el siguiente:

Subject: サンプル

JSON Web Token (RFC 7519)

JSON Web Token (JWT) es un formato de token que representa datos JSON de forma compacta mediante codificación Base64url. Se utiliza ampliamente para autenticación y autorización en aplicaciones web y está estandarizado en RFC 7519.

Un JWT consta de tres elementos separados por puntos (.).

<Header>.<Payload>.<Signature>

El papel de cada elemento es el siguiente.

ElementoDescripción
HeaderUn objeto JSON con metadatos como el tipo de token (typ) y el algoritmo de firma (alg)
PayloadUn objeto JSON con información como el ID de usuario y la fecha de expiración
SignatureDatos de firma utilizados para detectar alteraciones en el encabezado y la carga útil

El encabezado y la carga útil están codificados en Base64url. Base64url reemplaza "+" por "-" y "/" por "_", y omite el relleno "=" en comparación con el Base64 estándar (RFC 4648). Esto permite incluirlos de forma segura en URLs y encabezados HTTP.

Por ejemplo, al decodificar el siguiente JWT se obtienen el encabezado y la carga útil como JSON.

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

Los principales campos (claims) contenidos en el encabezado y la carga útil son los siguientes.

CampoNombreDescripción
algAlgorithmAlgoritmo utilizado para la firma o cifrado (p. ej. HS256, RS256, ES256)
typTypeTipo de token (normalmente "JWT")
ctyContent TypeTipo de contenido de la carga útil ("JWT" para JWTs anidados)
kidKey IDIdentificador de la clave utilizada para la verificación de firma
jkuJWK Set URLURL del conjunto JWK utilizado para la verificación de firma
x5uX.509 URLURL de la cadena de certificados X.509 utilizada para la verificación de firma
x5tX.509 Certificate SHA-1 ThumbprintHuella digital SHA-1 del certificado X.509 utilizado para la verificación de firma
CampoNombreDescripción
issIssuerEmisor del token
subSubjectSujeto del token (p. ej. ID de usuario)
audAudienceDestinatario del token
expExpiration TimeTiempo de expiración del token (marca de tiempo Unix)
nbfNot BeforeTiempo antes del cual el token no es válido (marca de tiempo Unix)
iatIssued AtTiempo en que se emitió el token (marca de tiempo Unix)
jtiJWT IDIdentificador único del token