Cómo se usa
- Elige Codificar para convertir texto en Base32 o Decodificar para convertir Base32 de nuevo en texto.
- Elige la Variante. RFC 4648 es la predeterminada y la que usan los secretos TOTP y la mayoría de las bibliotecas.
- Escribe o pega la entrada, o abre un archivo. El resultado se actualiza mientras escribes.
- Copia el resultado o descárgalo como archivo.
¿Qué es Base32?
Base32 representa datos binarios con 32 caracteres imprimibles. Cada carácter lleva 5 bits, así que cada 5 bytes de entrada se convierten en 8 caracteres de salida. La salida es aproximadamente un 60 % mayor que la entrada, una sobrecarga superior a la de Base64, pero el alfabeto evita las minúsculas y los símbolos que se confunden con facilidad.
El alfabeto estándar definido en RFC 4648 usa las letras A-Z y los dígitos 2-7. Los dígitos 0, 1, 8 y 9 se omiten para que no se confundan con las letras O, I y B. Cuando la longitud de la entrada no es múltiplo de 5 bytes, la salida se rellena con = hasta un múltiplo de 8 caracteres.
Dónde se usa Base32
- Autenticación de dos factores. Los secretos TOTP y HOTP de las aplicaciones de autenticación (el valor
secret=de un enlaceotpauth://) son cadenas Base32. - Sistemas que no distinguen mayúsculas y minúsculas. Como el alfabeto usa un solo tipo de letra, Base32 se conserva intacto en sistemas de archivos, etiquetas DNS y direcciones de correo electrónico que ignoran las mayúsculas.
- Códigos que escriben las personas. Las claves de licencia, las direcciones onion y los identificadores cortos usan Base32 para que sean más fáciles de dictar y de escribir.
Si el tamaño importa más que la legibilidad, Base64 es más compacto. Si necesitas identificadores cortos sin caracteres confusos, compara Crockford Base32 y Base58.
Variantes de Base32
| Variante | Alfabeto | Uso habitual |
|---|---|---|
| RFC 4648 | A-Z 2-7 | Secretos TOTP, uso general |
| Base32hex | 0-9 A-V | Conserva el orden de los bytes originales, DNSSEC NSEC3 |
| Crockford | 0-9 A-Z sin I, L, O ni U | ID legibles, ULID |
| z-base-32 | minúsculas, reordenado | Claves pensadas para personas, OpenPGP WKD, ZRTP |
Base32 en código
# Python
import base64
base64.b32encode(b'hello') # codificar
base64.b32decode('NBSWY3DP') # decodificar
// Node.js no incluye Base32; usa un paquete como "hi-base32"
// Go (import "encoding/base32")
base32.StdEncoding.EncodeToString(data)
Especificación
| Alfabeto | A-Z 2-7 |
|---|---|
| Tamaño de salida | 8 caracteres por cada 5 bytes (160%) |
| Relleno | Con = hasta un múltiplo de 8 caracteres |
| Estándar | RFC 4648, sección 6 |
| Distingue mayúsculas y minúsculas | No |
Ejemplos
| Entrada (UTF-8) | Salida |
|---|---|
Hello, World! | JBSWY3DPFQQFO33SNRSCC=== |
Base64.is | IJQXGZJWGQXGS4Y= |
你好 | 4S62BZNFXU====== |
Preguntas frecuentes
¿Base32 distingue entre mayúsculas y minúsculas?
El alfabeto de RFC 4648 se define en mayúsculas, pero este decodificador también acepta minúsculas. Usa la opción Minúsculas si necesitas la salida en minúsculas.
¿Por qué mi cadena Base32 termina con signos =?
Los signos igual son el relleno que completa el último bloque hasta 8 caracteres. Muchos sistemas, incluida la mayoría de las aplicaciones TOTP, aceptan Base32 sin relleno. Desactiva el Relleno para quitarlo.
¿Cuánto ocupa Base32 en comparación con los datos originales?
Cada 5 bytes se convierten en 8 caracteres, así que la salida Base32 ocupa unas 1,6 veces el tamaño de la entrada. Base64 ocupa unas 1,33 veces.
¿Puedo decodificar un secreto TOTP con esta herramienta?
Sí. Pega el secreto en la pestaña Decodificar y pon el Formato de salida en Hexadecimal para ver los bytes de la clave sin procesar. Los espacios del secreto se ignoran.