Subir un archivo
  1. base64hub
  2. Otras bases
  3. Base32

Codificador y decodificador Base32 (RFC 4648)

Escribe texto y obtén Base32 RFC 4648 al instante, con o sin relleno =. Cambia la salida a base32hex, Crockford o z-base-32, o invierte la dirección para decodificar.

Gratis sin registro, sin límites Local no se sube nada 4 variantes RFC 4648, hex, Crockford, z-base-32 Actualizado 27 oct 2026
Entrada 0Bytes 0 BSalida 0

Se procesa en tu navegador. Esta página no puede enviar tus datos a ninguna parte – cómo lo sabemos

Cómo codificar texto a Base32

  1. Escribe o pega texto en Entrada · Texto. Con En vivo marcado, la salida se actualiza con cada pulsación.
  2. Lee el resultado en Salida · Base32 (RFC 4648). Desmarca Relleno (=) bajo la salida para quitar los signos = del final.
  3. Para otra variante, abre A y elige Base32hex, Crockford Base32 o z-base-32.
  4. Para decodificar, haz clic en Base32 (RFC 4648) → Texto en el selector de dirección. El decodificador Base32 dedicado empieza en esa dirección.
  5. Usa Copiar salida o Descargar para llevarte el resultado.

Por defecto, el texto se convierte en bytes como UTF-8. Si necesitas el Base32 del mismo texto en otra codificación, por ejemplo Windows-1252 o UTF-16LE, cambia el Juego de caracteres bajo la entrada.

Cómo funciona Base32

Base32 lee la entrada de 5 en 5 bits y escribe un carácter por cada 5 bits. Cinco bytes (40 bits) se convierten exactamente en ocho caracteres, así que la salida es un 60 % mayor que la entrada. Una cadena Base64 de los mismos datos sería un 33 % mayor; ese es el precio que paga Base32 por usar solo letras mayúsculas y seis dígitos.

Cuando la longitud de la entrada no es múltiplo de 5 bytes, el último grupo se rellena con = hasta 8 caracteres. Estos son los vectores de prueba de RFC 4648, generados con esta herramienta:

EntradaBase32Sin relleno
fMY======MY
foMZXQ====MZXQ
fooMZXW6===MZXW6
foobMZXW6YQ=MZXW6YQ
foobaMZXW6YTBMZXW6YTB
foobarMZXW6YTBOI======MZXW6YTBOI

El relleno no lleva datos. Un decodificador puede deducir el número de bytes a partir de la cantidad de caracteres reales, por eso muchos formatos lo omiten.

Variantes de Base32: RFC 4648, base32hex, Crockford, z-base-32

«Base32» es el nombre de una familia. Los cuatro miembros empaquetan 5 bits por carácter; se diferencian en el alfabeto y en si usan relleno. Los mismos cinco bytes, Hello, en cada una:

VarianteAlfabetoHelloRellenoDónde la encontrarás
Base32 RFC 4648A–Z, 2–7JBSWY3DP=Secretos TOTP/2FA, direcciones onion v3 de Tor, CIDv1 de IPFS (b…, en minúsculas)
Base32hex0–9, A–V91IMOR3F=Registros NSEC3 de DNSSEC; las cadenas codificadas se ordenan igual que los bytes
Crockford Base320–9, A–Z sin I L O U91JPRV3FningunoIdentificadores que la gente lee en voz alta y teclea
z-base-32ybndrfg8ejkmcpqxot1uwisza345h769jb1sa5dxningunoClaves e identificadores pensados para personas

Base32hex y Crockford se parecen, pero son alfabetos distintos: a partir de la H se separan, así que 91IMOR3F y 91JPRV3F son los mismos bytes. Elegir el equivocado decodifica sin error y te da otros bytes sin avisar.

El decodificador Crockford de aquí es tolerante, tal como pretendía Crockford: lee I y L como 1, O como 0 e ignora los guiones, así que 91JP-RV3F sigue dando Hello. No añade ni comprueba el símbolo de control opcional de Crockford.

Base32 para secretos TOTP y 2FA

Las apps de autenticación obtienen su secreto de un enlace otpauth://, que normalmente se muestra como código QR:

otpauth://totp/Example:alice@example.com?secret=JBSWY3DPEHPK3PXP&issuer=Example

El parámetro secret es Base32 RFC 4648 sin relleno. JBSWY3DPEHPK3PXP tiene 16 caracteres, así que contiene 10 bytes. RFC 4226 recomienda un secreto de 160 bits (20 bytes), que ocupa 32 caracteres Base32. Si tu secreto está guardado en Base64 o hex, conviértelo con Base64 a Base32. Si escribes el texto Base64 en esta página, se codifican sus caracteres, lo que da Base32 válido pero de otros bytes, y todos los códigos generados con él serán rechazados.

Un secreto TOTP es una clave: quien lo tenga puede generar tus códigos. Esta página trabaja con el secreto dentro de la pestaña de tu navegador, y su Content Security Policy impide que la página haga peticiones de red, salvo las del contador de visitas de Cloudflare.

Base32 en la línea de comandos y en Python

GNU coreutils incluye un comando base32 que funciona como base64:

printf 'Hello' | base32
printf 'JBSWY3DP' | base32 -d

La primera línea imprime JBSWY3DP y la segunda Hello. La biblioteca estándar de Python tiene las tres formas de RFC 4648:

import base64

base64.b32encode(b"Hello")                          # b'JBSWY3DP'
base64.b32hexencode(b"Hello")                       # b'91IMOR3F'
base64.b32encode(b"Hi").decode().rstrip("=")        # 'JBUQ'

Hay más recetas de codificación en la página de Python. Para decodificar, incluidos los errores de relleno y de minúsculas que lanza Python, consulta el decodificador Base32.

Preguntas frecuentes

¿Por qué la salida Base32 termina en ======?

Base32 trabaja con bloques de 5 bytes que se convierten en 8 caracteres. Cuando el último bloque es más corto, RFC 4648 completa los 8 caracteres con =, así que Hi se convierte en JBUQ====. Desmarca Relleno (=) si el receptor quiere solo JBUQ.

¿Base32 distingue mayúsculas de minúsculas?

El alfabeto de RFC 4648 está en mayúsculas, pero la mayoría de los decodificadores también aceptan minúsculas, y este también. Python es una excepción: base64.b32decode rechaza las minúsculas salvo que pases casefold=True.

¿Uso Base32 o Base64?

Usa Base64 cuando solo lean los datos programas: es más corto (un 33 % más de tamaño frente a un 60 %). Usa Base32 cuando las personas lean, tecleen o dicten el valor, o cuando tenga que sobrevivir a sistemas que no distinguen mayúsculas, como los nombres DNS o algunos sistemas de archivos.

¿Qué caracteres usa Base32?

Base32 RFC 4648 usa A–Z y 2–7, más = como relleno. Los dígitos 0, 1, 8 y 9 quedan fuera, así que una cadena que los contenga es base32hex, Crockford o directamente no es Base32.