Codificador/Decodificador Base32
Codifica texto a Base32 y decodifícalo de vuelta
Procesando…
0.0
No se ha bloqueado: el resultado aparecerá cuando termine el cálculo.
Acerca de Codificador/Decodificador Base32
Base32 escribe bytes con 32 caracteres: las mayúsculas A–Z y los dígitos 2–7 (RFC 4648, sección 6). Produce cadenas más largas que Base64, pero no distingue mayúsculas de minúsculas y evita los dígitos 0, 1, 8 y 9, que se confunden con letras. Por eso se usa en valores que las personas leen y teclean; el ejemplo más conocido es la “clave de configuración” de las apps de autenticación en dos pasos.
Esta herramienta convierte el texto a bytes UTF-8, los codifica con el alfabeto estándar de la RFC 4648 y añade = hasta que la longitud sea múltiplo de ocho. Al decodificar acepta minúsculas e ignora espacios, saltos de línea y el relleno final.
Por qué cinco bytes se convierten en ocho caracteres
32 = 2⁵, así que cada carácter lleva 5 bits. El menor número de bits múltiplo de 8 y de 5 es 40, de modo que Base32 procesa bloques de 5 bytes y emite 8 caracteres. El tamaño de salida es ceil(n/5) × 8: 1,6 veces la entrada, un +60 %. Con Base64 los mismos datos crecen un 33 %.
Si el último bloque tiene menos de 5 bytes, los bits restantes se completan con ceros y el resto del bloque se rellena con =. Con 1, 2, 3 o 4 bytes sobrantes aparecen 6, 4, 3 o 1 signos de relleno. Por eso el vector de prueba “foobar” de la RFC termina con seis =: MZXW6YTBOI====== (6 bytes = un bloque completo + 1 byte).
Para qué sirve Base32
Base64 distingue mayúsculas y minúsculas e incluye +, / y =, lo que complica dictarlo por teléfono o copiarlo de un papel. El Base32 estándar solo usa mayúsculas y 2–7; como no hay 0, 1, 8 ni 9, no hay nada que confundir con O, I o B. Si el usuario escribe en minúsculas, el valor es el mismo.
Las apps de autenticación (Google Authenticator y similares) reciben su secreto mediante una URI otpauth://, y el parámetro secret está en Base32. Cuando no puedes escanear el código QR, la cadena que te piden escribir —algo como JBSWY3DPEHPK3PXP— es ese secreto. La app la decodifica a bytes y los usa como clave HMAC del algoritmo TOTP (RFC 6238). Por eso, si decodificas aquí una clave de configuración, verás caracteres ilegibles: los bytes son aleatorios, no texto.
Las direcciones onion v3 de Tor son otro caso: el nombre de 56 caracteres es la codificación Base32, en minúsculas, de la clave pública del servicio más una suma de verificación y un byte de versión.
Base32 no es un solo formato
La RFC 4648 define además “base32hex”, que usa 0–9 y A–V. Su ventaja es que las cadenas codificadas se ordenan igual que los bytes originales, y por eso lo usan los registros NSEC3 de DNSSEC. También existen variantes fuera de la RFC, como el Base32 de Crockford o z-base-32. Con alfabetos distintos, la misma cadena se decodifica en bytes completamente diferentes. Si esta herramienta indica un carácter no válido —un 0, 1, 8 o 9 es la señal típica—, probablemente se trata de otra variante, que no está soportada.
Ejemplos
Vectores de prueba de la RFC 4648
- Entrada
f / fo / foo / foob / fooba / foobar- Resultado
MY====== / MZXQ==== / MZXW6=== / MZXW6YQ= / MZXW6YTB / MZXW6YTBOI======
El relleno baja de 6 a 4, 3 y 1 a medida que se llena el bloque, y desaparece con 5 bytes exactos. Coinciden con la sección 10 de la RFC.
El origen de la clave de ejemplo
- Entrada
Hello- Resultado
JBSWY3DP
Muchas documentaciones de librerías TOTP usan un secreto de ejemplo que empieza por JBSWY3DP: es “Hello” en Base32.
Texto con tildes
- Entrada
año- Resultado
MHB3C3Y=
La ñ ocupa 2 bytes en UTF-8, así que “año” son 4 bytes: 7 caracteres útiles más 1 de relleno para llegar a 8.
Minúsculas sí, dígitos no
- Entrada
nbswy3dp (decodificar)- Resultado
hello
En minúsculas se decodifica igual que NBSWY3DP. En cambio NBSWY3D0, con un cero, da error: el 0 no forma parte del alfabeto.
Cómo se usa
- Pega el texto que quieres codificar o la cadena Base32 que quieres decodificar.
- El resultado aparece al instante; el botón de intercambio invierte la dirección.
- Si hay error, busca 0, 1, 8, 9 o símbolos: indican otra variante de Base32.
Preguntas frecuentes
¿Por qué mi clave de autenticación se decodifica como basura?
Porque son bytes aleatorios, no texto. La herramienta muestra el resultado como texto UTF-8, así que los bytes que no son texto aparecen como caracteres de reemplazo. La clave sigue siendo válida.
¿Base32 o Base64?
Entre máquinas, Base64 es más corto. Para valores que se teclean, se dictan o se guardan en sistemas que no distinguen mayúsculas (nombres DNS, algunos sistemas de archivos), Base32 encaja mejor.
¿Se puede omitir el relleno =?
Sí, esta herramienta decodifica con o sin él. Las claves de configuración suelen mostrarse sin relleno.
¿Base32 cifra los datos?
No. Es una notación reversible. Un secreto TOTP es secreto por los bytes que contiene, no por cómo están escritos.
Fuentes
- RFC 4648 — §6 Base32, §7 base32hex, §10 vectores de prueba
- RFC 6238 — TOTP
- RFC 5155 — DNSSEC NSEC3 (usa base32hex)
- Google Authenticator — Key Uri Format
Revisado el: