Ir al contenido
OpsKit

Codificador / decodificador Base64

Convierte texto a Base64 y de vuelta. Trata correctamente los caracteres acentuados, admite el alfabeto seguro para URL que usa JWT y te avisa cuando el contenido es binario en vez de estropearlo en silencio.

Salida

Todo ocurre en tu navegador. Esta página es un archivo estático. Lo que escribes se queda en la pestaña, nunca se envía a un servidor y desaparece al cerrarla, así que puedes pegar un token o una configuración real sin riesgo.

Cuándo la necesitas

  • Al leer un Secret de Kubernetes, donde kubectl get secret muestra cada valor codificado en Base64.
  • Al incrustar una imagen pequeña o un certificado en un archivo de configuración, una variable de entorno o un data URI.
  • Al inspeccionar una cabecera Authorization, un payload de webhook o un segmento de JWT que llegó codificado.

Ejemplos resueltos

ASCII simple

Entrada
hello world
Resultado
aGVsbG8gd29ybGQ=

El = final es relleno, no forma parte de los datos.

Texto con acentos

Entrada
café
Resultado
Y2Fmw6k=

La é ocupa dos bytes en UTF-8. Las herramientas que usan btoa() lanzan un error aquí.

Seguro para URL, para un segmento JWT

Entrada
{"alg":"HS256","typ":"JWT"}
Resultado
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9

Sin relleno y sin caracteres + o /, así que sobrevive dentro de una URL.

Dónde suele fallar la gente

Confundir Base64 con cifrado

Es una codificación, reversible por cualquiera. Un Secret de Kubernetes está codificado en Base64, no protegido: trátalo como texto plano en tu modelo de amenazas.

Pasar Base64 seguro para URL a un decodificador estándar

Los segmentos JWT usan - y _ y omiten el relleno. Un decodificador estricto los rechaza. Convierte el alfabeto y completa la longitud a un múltiplo de 4 antes.

Perder bytes por un salto de línea final

echo "secret" | base64 también codifica el salto de línea final. Usa echo -n o printf cuando el valor deba coincidir exactamente.

Preguntas frecuentes

¿Por qué la cadena codificada es más larga que el original?

Base64 representa 3 bytes con 4 caracteres, así que la salida crece cerca de un 33% más el relleno. Ese coste es el precio de mover datos binarios por un canal de solo texto.

¿Es seguro pegar aquí un secreto de producción?

La página es estática y la conversión ocurre en JavaScript dentro de tu pestaña. No se transmite nada. Puedes verificarlo abriendo el panel de red mientras escribes.

¿Cómo hago esto desde la terminal?

Codifica con printf '%s' 'texto' | base64 y decodifica con base64 -d. En macOS la opción de decodificar es -D. Para salida segura para URL añade | tr '+/' '-_' | tr -d '='.

Herramientas relacionadas