Codificador y decodificador Base58 / Base62 / Base100
CifradoTodo se ejecuta en tu navegador: no se sube nada
Codificaciones que evitan caracteres que se confunden, cada una para su ocasión. Base58 es la codificación de direcciones de Bitcoin: prescinde de 0, O, I y l por una razón práctica: las direcciones de cartera se comprueban a ojo contra una pantalla, y en la mayoría de las tipografías el 0 es indistinguible de la O y la l de la I. Un carácter mal leído envía los fondos a una dirección que no se puede recuperar. Base62 usa todos los dígitos y las dos cajas de letras, así que mete más contenido en la misma longitud, y por eso lo prefieren los acortadores de URL. Base100 asigna a cada byte un emoji fijo (el 100 del nombre es la broma del 💯); la salida crece unas tres veces y su único propósito es que los datos parezcan emoji para colarse por filtros que solo miran caracteres imprimibles. Las tres se ejecutan en el navegador; nada de lo que escribes se sube.
Funciones
- Cuatro codificaciones: Base58 (Bitcoin), Base58 (Flickr), Base62 y Base100
- Los dos alfabetos Base58 — no son compatibles y los mismos datos dan cadenas completamente distintas
- Base100 sigue la especificación stek29: cada byte corresponde a un emoji de U+1F3F7–U+1F4F6
- El texto no ASCII se trata como bytes UTF-8, igual que las carteras de Bitcoin
- Los bytes cero iniciales se conservan — una dirección Bitcoin empieza por 0x00, y perderlo cambia la dirección
- Un carácter fuera del alfabeto se indica por su nombre en vez de descartarse
- ⚠️ También genera direcciones Bitcoin con formato correcto (red principal / de pruebas, P2PKH / P2SH) para datos de prueba. Nadie tiene las claves privadas de estas direcciones, así que solo sirven como datos de prueba
Cómo se usa
- Elige la dirección: codificar, decodificar o «generar direcciones Bitcoin»
- Para codificar / decodificar elige la codificación (Base58 tiene dos alfabetos: no te equivoques)
- Pega el contenido; el resultado aparece mientras escribes
- Pulsa Copiar para llevarte el resultado
Preguntas frecuentes
- ¿Por qué Base58 prescinde de 0, O, I y l?
- Porque su público es una persona que coteja una dirección contra una pantalla. En la mayoría de las tipografías el 0 y la O cuesta distinguirlos, y la l y la I también. Si se lee mal un carácter de una dirección Bitcoin, los fondos van a una dirección que o no existe o es de otro, y no hay forma de revertirlo. Cuatro caracteres menos cuestan un 3% de longitud y eliminan toda una clase de errores humanos. Por eso las direcciones Bitcoin nunca contienen esos dos dígitos ni esas dos letras.
- ¿En qué se diferencian los alfabetos Base58 de Bitcoin y Flickr?
- Solo en dónde van las mayúsculas: Bitcoin las pone primero (123456789ABC…abc…), Flickr las pone al final (123456789abc…ABC…). Ninguno contiene 0, O, I ni l. No son compatibles: si decodificas una cadena con la tabla equivocada obtienes bytes completamente distintos, en silencio y sin error. Confirma qué tabla usa la otra parte antes de fiarte.
- ¿Qué es Base100 y por qué la salida es más larga?
- Base100 asigna cada byte a un emoji fijo (el byte n pasa a ser el punto de código U+1F3F7 + n). Es de longitud fija, un carácter por byte, sin conversión de base. Por eso la salida siempre crece: un byte ocupa 3–4 bytes en UTF-8 y el emoji añade los suyos encima. No es compresión ni cifrado: su propósito es convertir los datos en algo que parezca emoji ante un filtro que solo acepta caracteres imprimibles.
- Al decodificar dice que los bytes no son texto UTF-8 válido
- Eso significa que la cadena codificada lleva binario y no texto. Base58 se usa casi siempre con datos binarios: una dirección Bitcoin contiene un byte de versión, un hash de clave pública y una suma de verificación, nada de lo cual está pensado para leerse como texto. Aquí la salida es un campo de texto y no puede mostrar binario, así que avisa del error en vez de darte un galimatías.
- ¿Por qué al decodificar una cadena Base58 que empieza por «1» salen bytes de más?
- Base58 es una representación de entero grande, y esa notación se come los bytes 0x00 iniciales: [0x00, 0x41] y [0x41] tienen exactamente el mismo valor numérico. Para poder hacer ida y vuelta, la convención es que cada byte 0x00 inicial se escribe como una instancia del primer carácter del alfabeto (que en la tabla de Bitcoin es «1»). Así que cada «1» inicial representa un byte 0x00 real, no relleno. Ese mecanismo es lo que conserva el byte de versión de las direcciones Bitcoin.
- ¿Las direcciones Bitcoin generadas pueden recibir dinero?
- No, y esto tiene que quedar claro: las monedas que se envíen a ellas se pierden y nadie puede recuperarlas. Una dirección Bitcoin real es el HASH160 de una clave pública; aquí se usan veinte bytes aleatorios directamente como ese HASH160. Estadísticamente es indistinguible de una dirección real, pero la clave privada correspondiente nunca se generó y nadie la tiene. Eso deja un único uso: datos de prueba. Cuando necesitas una dirección con formato correcto para una demo, una captura, documentación o un fixture de pruebas, una dirección real publicaría la dirección de cobro de un tercero, mientras que estas son aleatorias y sin dueño. Nunca aparecen en la cadena de bloques: son solo cadenas con formato válido.
- ¿Por qué no hay direcciones SegWit bc1?
- Porque bech32 no es Base58. `bc1q…` usa un algoritmo completamente distinto: otro alfabeto (32 caracteres, todos en minúscula) y otra suma de verificación (un código BCH que puede *corregir* hasta cuatro caracteres mal escritos, mientras que la de Base58Check solo *detecta* errores). Colarlo entre las variantes de Base58 daría a entender que la codificación es intercambiable, cuando cambiar el alfabeto produce algo totalmente distinto. Para SegWit usa una herramienta bech32 dedicada. Ten en cuenta además que lo que genera esta página es una dirección Base58Check (P2PKH / P2SH): sin mnemónico y sin clave privada. Es una dirección, no una cartera.
Herramientas relacionadas
Base64
CifradoConvierte texto a Base64 y al revés, con UTF-8 correcto para acentos, chino y emoji. Todo se ejecuta en tu navegador: no se sube nada.
Base32
CifradoConvierte texto a Base32 y al revés con el alfabeto estándar o base32hex. Lo no ASCII va como bytes UTF-8; al decodificar se toleran minúsculas.
Hash
CifradoCalcula resúmenes MD5, SHA-1, SHA-256, SHA-512 o MD4 de cualquier texto, en bytes UTF-8 para que coincidan con openssl. En tu navegador.
Codificar URL
CifradoEscapa texto a la forma %XX y lo devuelve, tratando una URL completa y un valor de parámetro como trabajos distintos. Todo en tu navegador.
Entidades HTML
CifradoConvierte < > & y las comillas en entidades HTML y las devuelve en una sola pasada, así que &lt; da <, no un ángulo. En tu navegador.
JWT (decodificar y verificar)
CifradoDivide un JWT en cabecera, payload y firma, verifica firmas HS256/384/512 con tu secreto y traduce exp y nbf a fechas. Todo en tu navegador.