Codificador y decodificador Base58

Convierte texto, bytes en hexadecimal o archivos pequeños a Base58 y viceversa. Elige el alfabeto Bitcoin, Flickr o Ripple y, si lo necesitas, añade o verifica una suma de verificación Base58Check.

Se ejecuta por completo en tu navegador. No se sube nada.

Cómo se usa

  1. Elige Codificar para convertir texto o bytes en Base58, o Decodificar para convertir una cadena Base58 de nuevo en datos.
  2. Selecciona el Alfabeto. Bitcoin es el predeterminado y también es el que usan IPFS y Solana.
  3. Escribe o pega la entrada. Cambia el Formato de entrada a Hexadecimal si tienes bytes sin procesar, como un hash o una clave pública.
  4. Activa la Suma de verificación Base58Check solo si la cadena lleva una suma de verificación de 4 bytes y, después, copia o descarga el resultado.

¿Qué es Base58?

Base58 es una codificación de binario a texto creada para Bitcoin. Su alfabeto está formado por los 62 dígitos y letras latinas, menos cuatro caracteres fáciles de confundir: 0 (cero), O (o mayúscula), I (i mayúscula) y l (L minúscula). Tampoco incluye +, / ni =, así que una cadena Base58 se selecciona entera con un doble clic y se puede poner en una URL sin escapes.

A diferencia de Base64, Base58 no divide la entrada en grupos de bits. Toda la entrada se trata como un único número grande que se escribe en base 58, por lo que no hay relleno y el cambio de un solo byte puede alterar muchos caracteres de la salida. Los bytes cero iniciales no tienen valor numérico, así que cada uno se escribe como el primer carácter del alfabeto (1 en el alfabeto Bitcoin) para conservarlo. La salida ocupa unas 1,37 veces el tamaño de la entrada.

Dónde se usa Base58

  • Bitcoin. Las direcciones heredadas (legacy) y las claves privadas WIF usan Base58Check: Base58 con un byte de versión y una suma de verificación.
  • IPFS. Un identificador de contenido de la versión 0 (CIDv0) es la forma Base58 de un multihash SHA-256; por eso esos CID tienen 46 caracteres y empiezan por Qm.
  • Solana. Las claves públicas, las direcciones de cuenta y las firmas de transacciones se escriben en Base58 simple, sin suma de verificación. Una clave de 32 bytes suele quedar en 43 o 44 caracteres.
  • Flickr y XRP Ledger. Los enlaces cortos de Flickr usan el alfabeto Flickr, y las direcciones de XRP usan el alfabeto Ripple; por eso empiezan por r.

Para pasar de Base58 a bytes sin procesar y al revés, usa Base58 a hexadecimal y Hexadecimal a Base58. Si solo necesitas identificadores alfanuméricos, compáralo con Base62.

Alfabetos de Base58

AlfabetoCaracteres, en orden
Bitcoin123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
Flickr123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ
Ripplerpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz

Los tres usan los mismos 58 caracteres en distinto orden, así que una cadena codificada con un alfabeto da otros bytes, o un error, si se decodifica con otro.

Base58 en código

# Python (pip install base58)
import base58
base58.b58encode(b'hello')      # b'Cn8eVZg'
base58.b58decode('Cn8eVZg')     # b'hello'

// JavaScript (instalación: npm install bs58)
import bs58 from 'bs58';
bs58.encode(new TextEncoder().encode('hello'));

Especificación

Alfabeto1-9 A-Z a-z sin 0 O I l
Tamaño de salidaAprox. 137% (conversión como número grande)
RellenoNinguno (los bytes cero iniciales se convierten en 1)
EstándarBitcoin Base58
Distingue mayúsculas y minúsculasSí

Ejemplos

Entrada (UTF-8)Salida
Hello, World!72k1xXWG59fYdzSNoA
Base64.isr1Nm3AS7ZcnN
你好2xuZUfBKa

Preguntas frecuentes

¿Por qué los bytes cero iniciales se convierten en 1?
Base58 convierte la entrada en un único número, y los bytes cero iniciales no cambian su valor. Para conservarlos, cada byte cero inicial se escribe como el primer carácter del alfabeto, que es 1 en el alfabeto Bitcoin. Por eso 32 bytes cero se codifican como una serie de 32 unos.
¿Base58 distingue mayúsculas y minúsculas?

Sí. Las mayúsculas y las minúsculas son dígitos distintos, así que pasar un solo carácter de mayúscula a minúscula, o al revés, modifica los bytes decodificados o invalida la cadena.

¿Qué diferencia hay entre Base58 y Base58Check?
Base58Check añade una suma de verificación de 4 bytes (el comienzo de un doble hash SHA-256) antes de codificar, de modo que se pueden detectar errores de escritura. Activa aquí la opción Suma de verificación Base58Check o consulta la página Base58Check para más detalles.
¿Por qué la entrada está limitada a unos 20 KB?
Como toda la entrada es un único número grande, el trabajo crece con el cuadrado de su longitud. Base58 está pensado para claves, hashes y direcciones, no para archivos. Para datos grandes, usa Base64 o Base85.