Codificador/Decodificador Base64

Base64 es un esquema de codificación de binario a texto que representa datos binarios utilizando 64 caracteres ASCII. Se usa comúnmente para incrustar datos binarios en formatos basados en texto como JSON, XML y URLs. Esta herramienta decodifica Base64 para revelar el contenido original y detecta automáticamente si el resultado es JSON, XML u otros formatos analizables.

Especificaciones

Casos de uso comunes

  • Decodificar cargas útiles de API y webhooks codificados en Base64
  • Inspeccionar datos codificados en tokens JWT
  • Decodificar archivos adjuntos de correo electrónico (MIME Base64)
  • Depurar mensajes de error y trazas de pila codificados
  • Ver valores de configuración codificados en variables de entorno

Funcionalidades

  • Decodificar Base64 estándar a texto UTF-8
  • Manejar variantes Base64 seguras para URL (- y _ en lugar de + y /)
  • Detección automática del tipo de contenido decodificado (JSON, XML, etc.)
  • Encadenar al analizador apropiado cuando se detectan datos estructurados
  • Codificar texto a Base64
  • Vista previa de imágenes para datos de imagen binarios decodificados
  • Visor hexadecimal para datos binarios no UTF-8
  • Indicador de formato de detección (Estándar / Seguro para URL / Mixto)

Ejemplos

JSON codificado

Pruébalo →

Una cadena Base64 que se decodifica a un objeto JSON.

eyJuYW1lIjoiRGVjb2RlVGhpcyIsInZlcnNpb24iOiIxLjAuMCJ9

Texto simple

Pruébalo →

Un mensaje de saludo codificado en Base64 (se decodifica a "Hello, World!").

SGVsbG8sIFdvcmxkIQ==

Consejos

  • Base64 es codificación, no cifrado. No proporciona seguridad.
  • El relleno = al final puede omitirse en algunas implementaciones.
  • Base64 seguro para URL reemplaza + con - y / con _ para evitar problemas de codificación de URL.
  • Base64 aumenta el tamaño de los datos aproximadamente un 33%.

Comprender Codificador/Decodificador Base64

Base64 es un esquema de codificación de binario a texto definido en RFC 4648 que representa datos binarios arbitrarios usando 64 caracteres ASCII imprimibles (A-Z, a-z, 0-9, +, /) más el carácter de relleno (=). Su propósito principal es transportar datos binarios a través de sistemas basados en texto que pueden no manejar correctamente bytes sin procesar, como correo electrónico, cargas útiles JSON, documentos XML y parámetros de URL.

El proceso de codificación toma cada tres bytes (24 bits) de entrada y los divide en cuatro grupos de 6 bits. Cada valor de 6 bits se mapea a uno de los 64 caracteres. Cuando la longitud de entrada no es un múltiplo de tres bytes, se agrega relleno con uno o dos caracteres = para completar la salida a un múltiplo de cuatro caracteres. Esto significa que los datos codificados en Base64 son aproximadamente un 33% más grandes que el original.

Existen dos variantes principales. El Base64 estándar usa + y / y se usa en la codificación de correo electrónico MIME. El Base64 seguro para URL (base64url) reemplaza + con - y / con _ para evitar caracteres reservados en URLs. Los tokens JWT usan la variante segura para URL sin relleno. Algunas implementaciones omiten el relleno final = ya que la longitud original de los datos se puede inferir.

Base64 aparece en todas partes del desarrollo web. Las URIs de datos incrustan imágenes y fuentes en HTML/CSS. Los tokens JWT son tres segmentos codificados en Base64url. Los mensajes SAML son XML codificado en Base64. Las respuestas de API pueden codificar contenido binario como Base64 dentro de JSON. Es importante destacar que Base64 es codificación, no cifrado — no proporciona ninguna seguridad ni confidencialidad.

Base64 no es una forma de cifrado y nunca debe tratarse como tal. Transforma datos a una representación diferente sin ninguna clave o secreto, y cualquiera puede decodificar una cadena Base64 instantáneamente. Si los datos sensibles están codificados en Base64, están completamente expuestos. Para datos que necesitan permanecer secretos, use algoritmos de cifrado reales como AES o RSA. El Base64 estándar usa + y / como caracteres 62 y 63, mientras que el Base64 seguro para URL (base64url, definido en la Sección 5 de RFC 4648) los reemplaza con - y _ porque + y / tienen significado especial en URLs. Los tokens JWT siempre usan la variante segura para URL sin relleno.

Los caracteres de relleno = aseguran que la longitud de la salida codificada sea siempre un múltiplo de 4 caracteres. Ya que Base64 codifica 3 bytes en 4 caracteres, las entradas cuya longitud no es múltiplo de 3 necesitan relleno: 1 byte sobrante produce ==, y 2 bytes sobrantes producen =. Algunas implementaciones, incluyendo JWT, omiten el relleno por completo ya que el decodificador puede calcular la longitud original a partir de la longitud de la cadena codificada.

El aumento del 33% en tamaño es inherente a la codificación: cada 3 bytes (24 bits) se convierten en 4 caracteres ASCII (32 bits), una proporción de expansión fija de 4/3 que no se puede reducir. Si el tamaño es una preocupación, comprima los datos antes de codificar. Para activos binarios grandes, considere mecanismos de transferencia binaria apropiados como cargas multiparte o frames binarios de WebSocket en lugar de incrustar Base64 en formatos de texto.

← Volver a todas las herramientas