piapia123
es

Codificador y decodificador Base32

Cifrado

Todo se ejecuta en tu navegador: no se sube nada

Entrada
Arrastra un archivo aquí para cargarlo
Resultado

Codifica texto a Base32, o devuelve Base32 a texto. El alfabeto Base32 es A–Z más 2–7, que deja fuera a propósito el 0, el 1, el 8 y el 9: en la mayoría de las letras a mano esos dígitos son casi indistinguibles de O, I, B y g, y Base32 se usa justo donde alguien tiene que leer la cadena en voz alta o copiarla por teléfono (códigos de activación, secretos TOTP, cadenas de configuración). El precio es la longitud: alrededor de un 60% más de caracteres que Base64 para el mismo contenido. Aquí se admiten los dos alfabetos de la RFC 4648 — Base32 estándar y base32hex, la variante ordenada por valor hexadecimal, que importa cuando el orden de la cadena tiene que coincidir con el de los bytes (registros NSEC3, claves primarias ordenadas). El texto no ASCII se codifica como bytes UTF-8, y al decodificar se toleran minúsculas, espacios, saltos de línea y la falta del relleno =, porque esa es exactamente la forma de lo que se pega desde un correo o un terminal.

Funciones

  • Conversión en ambos sentidos: texto ⇄ Base32
  • Dos alfabetos: Base32 estándar (A–Z, 2–7) y base32hex (0–9, A–V)
  • Relleno con =, o forma compacta sin relleno (al decodificar se aceptan las dos)
  • El texto no ASCII se codifica como bytes UTF-8, igual que las implementaciones estándar
  • Al decodificar se toleran minúsculas, espacios, saltos de línea y la falta de relleno
  • Un carácter fuera del alfabeto se indica por su nombre en vez de descartarse

Cómo se usa

  1. Elige la dirección: codificar o decodificar
  2. Elige el alfabeto: Base32 estándar o base32hex
  3. Pega el contenido en el campo; el resultado aparece mientras escribes
  4. Pulsa Copiar para llevarte el resultado

Preguntas frecuentes

¿En qué se diferencia Base32 de Base64?
Codifican los mismos bytes; la diferencia está en cuántos caracteres representan 5 bits en lugar de 6, y en el alfabeto. Base64 usa 64 caracteres y convierte cada 3 bytes en 4 caracteres. Base32 usa 32 caracteres y convierte cada 5 bytes en 8 caracteres. La salida de Base32 es un 60% más larga y a cambio da un alfabeto más pequeño, sin caracteres que se confundan y que además no distingue mayúsculas. Elige Base64 para URL y bases de datos; elige Base32 cuando alguien tenga que copiar o leer la cadena en voz alta, o cuando vaya en la etiqueta de un dispositivo.
¿Por qué la salida de Base32 es tanto más larga que la entrada?
Porque cada carácter Base32 solo lleva 5 bits, mientras que un byte son 8 bits. 8 ÷ 5 = 1,6, así que la salida es necesariamente 1,6 veces la entrada (más el relleno). Base64 es 8 ÷ 6 ≈ 1,33 veces. No es una peculiaridad de la implementación: un alfabeto más pequeño siempre da una cadena más larga.
¿Debería usar base32hex o Base32 estándar?
Base32 estándar para casi todo: es el valor predeterminado y es lo que esperan las demás implementaciones salvo que se indique lo contrario. base32hex se gana su sitio cuando importa el orden: su alfabeto va de 0–9 y luego A–V, así que comparar dos cadenas codificadas lexicográficamente da exactamente el mismo orden que comparar los bytes originales. Eso hace falta cuando el valor codificado es una clave primaria de base de datos, o para la búsqueda binaria ordenada en DNS (NSEC3). Los dos no son compatibles: los mismos datos producen cadenas completamente distintas.
Al decodificar me dice que un carácter no está en el alfabeto
Normalmente es el alfabeto equivocado. El Base32 estándar no tiene 0, 1, 8 ni 9, así que una cadena con 0 solo puede fallar con la tabla estándar: cambia a base32hex y se decodifica. Al revés, una cadena con W, X, Y o Z solo puede ser Base32 estándar, porque la tabla hex termina en V. La otra posibilidad es un truncamiento, en el que un grupo parcial del final ha recogido un carácter suelto.
Al decodificar dice que los bytes no son texto UTF-8 válido
Eso significa que el Base32 lleva binario y no texto: imágenes, claves y archivos comprimidos tienen ese aspecto. El propio Base32 solo transporta bytes y no sabe qué hay dentro. Aquí la salida es un campo de texto, así que no puede mostrar binario; avisar del error es mejor que sustituirlo por caracteres de reemplazo y dejarte creer que se decodificó bien.

Herramientas relacionadas