Subir un archivo
  1. base64hub
  2. Otras bases
  3. Base16 (hex)

Codificador y decodificador Base16 (hex RFC 4648)

Codifica texto en Base16 RFC 4648, el alfabeto 0–9 y A–F con dos caracteres por byte, o decodifica Base16 de vuelta a texto. Hello es 48656C6C6F.

Gratis sin registro, sin límites Local no se sube nada RFC 4648 alfabeto de la sección 8, mayúsculas 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 usar el codificador Base16

  1. Escribe o pega texto en la entrada. El Base16 aparece en la salida mientras escribes.
  2. El Juego de caracteres bajo la entrada decide cómo se convierten los caracteres en bytes. Por defecto es UTF-8.
  3. Para decodificar, haz clic en Base16 (RFC 4648) → Texto encima de la herramienta, o en el botón ⇄ Intercambiar, que además pasa la salida actual a la entrada. Se aceptan dígitos en minúsculas, espacios y dos puntos en la entrada.
  4. Usa Copiar salida o Descargar. Los menús De y A cambian a otros formatos, como Base32 o Base64, para comparar.

Si necesitas hex con separadores, prefijos 0x o salida en minúsculas, Texto a hex tiene esas opciones.

Base16 y RFC 4648

RFC 4648 define Base64, Base32 y Base16 una al lado de otra, y Base16 es la más sencilla de las tres: no tiene relleno, saltos de línea ni reagrupación de bits. Cada byte se divide en dos mitades de 4 bits, y cada mitad corresponde a un carácter. Los vectores de prueba de la propia RFC:

EntradaBase16
(vacío)(vacío)
f66
fo666F
foo666F6F
foob666F6F62
fooba666F6F6261
foobar666F6F626172

La longitud de la salida es siempre exactamente el doble del número de bytes, y por eso Base16 no necesita carácter de relleno. Base64 y Base32 agrupan varios bytes por bloque y tienen que completar el último bloque con =. El resumen de las RFC indica dónde se especifica cada una de estas codificaciones.

Base16 frente a Base32 y Base64

Los 12 bytes de Hello, world en cada codificación de RFC 4648:

CodificaciónSalidaLongitud
Base1648656C6C6F2C20776F726C6424
Base32JBSWY3DPFQQHO33SNRSA====24 (20 sin relleno)
Base64SGVsbG8sIHdvcmxk16

Base16 sacrifica tamaño a cambio de claridad. Puedes leer los bytes directamente y comparar valores dígito a dígito, y sobrevive a cualquier sistema que maneje letras y dígitos, incluidos los que no distinguen mayúsculas de minúsculas. Base64 es un tercio más corto y es la opción por defecto cuando los bytes tienen que viajar dentro de JSON, correo o URLs. La comparativa de codificaciones va más allá e incluye Base58 y Base85.

Dónde aparece Base16

  • Resúmenes hash y sumas de comprobación, que sha256sum y herramientas similares suelen imprimir en minúsculas.
  • Huellas de claves OpenPGP, que GnuPG imprime como hex en mayúsculas en grupos de cuatro.
  • Vectores de prueba en RFC y otras especificaciones, donde importa más que los valores de byte sean inequívocos que la longitud.
  • Protocolos y formatos que necesitan datos que no distingan mayúsculas o que sean puramente alfanuméricos.

Para pasar uno de estos valores a Base64, por ejemplo un hash que una API quiere en Base64, usa Hex a Base64; Base64 a hex hace lo contrario.

Base16 en código

import base64
base64.b16encode(b"Hello").decode()          # '48656C6C6F'
base64.b16decode("48656c6c6f", casefold=True)  # b'Hello'
printf 'Hello' | basenc --base16      # 48656C6C6F
echo 48656C6C6F | basenc --base16 -d  # Hello

basenc forma parte de GNU coreutils 8.31 y posteriores. En Node.js, Buffer.from("Hello").toString("hex").toUpperCase() da el mismo resultado. Las páginas de Python y Bash tratan la parte de Base64 de estos módulos.

Preguntas frecuentes

¿Base16 es lo mismo que hexadecimal?

Sí, para bytes. Base16 es el nombre que da RFC 4648 a la codificación hex: cada byte se convierte en dos caracteres de 0123456789ABCDEF. La RFC especifica mayúsculas; el hex del día a día suele ir en minúsculas.

¿Cuánto más ocupa Base16 que los datos originales?

Exactamente el doble, un 100 % más. Base32 añade un 60 % y Base64 alrededor de un 33 %, así que Base16 es la codificación menos compacta de RFC 4648 y la más fácil de leer.

¿Por qué b16decode de Python rechaza mi cadena?

base64.b16decode solo acepta mayúsculas por defecto. Pasa casefold=True para una entrada en minúsculas, o usa bytes.fromhex(), que acepta ambos casos y espacios.