Codificador y Decodificador Base58
Entrada
Base58 es una codificación de binario a texto pensada para evitar varios caracteres fáciles de confundir. El alfabeto de Bitcoin omite 0 O I l, además de + /; otros sistemas ordenan los mismos 58 símbolos de otra manera. Algunos ejemplos conocidos son las direcciones Bitcoin antiguas con Base58Check y las cadenas IPFS CIDv0. Esta herramienta funciona solo en el navegador, convierte texto UTF-8 o bytes hexadecimales exactos con el alfabeto de Bitcoin, Ripple o Flickr y rechaza los caracteres que no pertenecen al alfabeto elegido.
Cómo codificar y decodificar Base58
-
1
Ingresa bytes o una cadena Base58
La dirección de codificación acepta texto en hex o en bruto; la dirección de decodificación acepta Base58.
-
2
Elige el alfabeto si es necesario
El predeterminado es el Base58 de Bitcoin; variantes de Ripple y Flickr disponibles para compatibilidad.
-
3
Ejecuta la conversión
Base58 no se divide en grupos ordenados de 5 o 6 bits; se trata como un único entero big-endian, dividido por 58 repetidamente.
-
4
Copia el resultado
Las cadenas codificadas preservan los bytes cero iniciales como caracteres `1` iniciales (el glifo cero en el alfabeto de Bitcoin).
El alfabeto Base58 de Bitcoin
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
Nota lo que falta: 0, O, I, l. El primer carácter en el alfabeto es 1, que representa el entero 0.
Cómo funciona realmente
A diferencia de Base64, que divide los bits en grupos fijos, Base58 trata toda la cadena de bytes como un único entero big-endian N y lo expresa en base 58:
result = []
while N > 0:
result.prepend(alphabet[N mod 58])
N = N / 58
for each leading zero byte in input:
result.prepend(alphabet[0]) # es decir, '1'
Por eso la codificación Base58 no es trivial de transmitir: necesitas el número completo antes de poder emitir cualquier carácter.
Base58 vs Base58Check
La carga Base58Check típica de una dirección P2PKH antigua tiene 25 bytes: 1 byte de versión, 20 bytes de hash y 4 bytes de suma de comprobación. La suma son los primeros 4 bytes del doble SHA-256 de la versión y el hash. Al codificar la carga completa en Base58 se obtiene la cadena de dirección conocida.
Esta herramienta solo convierte Base58 simple. Usa un validador Base58Check específico cuando necesites comprobar la versión y la suma de una dirección.
Variantes de alfabeto
| Variante | Dónde se usa | Diferencias con Bitcoin |
|---|---|---|
| Bitcoin | Direcciones BTC, IPFS CIDv0 | Base estándar |
| Ripple | Direcciones XRP | Posiciones intercambiadas |
| Flickr | URLs cortas de fotos | Minúsculas antes de mayúsculas |
¿Por qué no usar solo Base64?
Base64 no tiene cambio de longitud entre texto binario y codificado (4 caracteres por 3 bytes), lo que es eficiente. Base58 tiene un sobrecosto ligeramente variable pero sin caracteres ambiguos, que es lo que deseas cuando alguien tiene que copiar una dirección a mano o leerla por teléfono.
Preguntas frecuentes
No universalmente. Base58 es mejor cuando los humanos manejan la cadena; Base64 es mejor cuando las máquinas la transportan. Base64 codifica 6 bits por carácter frente a los ~5.86 de Base58, por lo que Base64 es ligeramente más compacto.
Base58 codifica un gran entero, por lo que la longitud varía en uno o dos caracteres dependiendo de los bits de orden superior. Las direcciones P2PKH típicas tienen 34 caracteres, pero 33 es posible.
Puede decodificar la cadena a bytes sin procesar; elige la salida hexadecimal para conservar visibles los bytes arbitrarios. No comprueba la versión ni la suma de comprobación, así que decodificarla no demuestra que la dirección sea válida. Para eso necesitas un validador Base58Check.
Sí. Cada byte cero al inicio de la entrada se convierte en un carácter 1 en la salida, que es como funcionan las direcciones de Bitcoin que comienzan con 1.
Herramientas relacionadas
Codificador de cifrado A1Z26
Codifica texto usando el cifrado A1Z26 (A=1, B=2, ... Z=26) o decodifica una secuencia de números de vuelta a letras, con separador personalizable.
Codificador y Decodificador Base32
Codifica y decodifica cadenas Base32 usando el alfabeto RFC 4648. Útil para secretos TOTP, tokens insensibles a mayúsculas y identificadores escritos por humanos.
Generador de Hash bcrypt
Genera hashes bcrypt o verifica una contraseña en texto plano contra un hash bcrypt existente. Genera y verifica lado a lado en una sola herramienta.
Cifrado / Descifrado AES
Cifra y descifra texto de bajo riesgo con cifradores AES de OpenSSL. La frase de paso se resume con SHA-256 y la salida Base64 contiene IV más texto cifrado.
Generador bcrypt
Genera un hash bcrypt a partir de una contraseña en texto plano. Factor de costo ajustable de 4 a 14, compatible con Laravel, Django, Node y PHP.
Codificador y Decodificador Base85
Codifica y decodifica Base85 en variantes Adobe Ascii85 (PostScript/PDF) o Z85 (ZeroMQ). Más compacto que Base64 para datos binarios.