Base58
Base58 es una codificación binaria-a-texto orientada al usuario que usa 58 caracteres (eliminando de Base64 los fáciles de confundir 0, O, I, l, + y /), conocida sobre todo por las direcciones de criptomonedas.
Propósito
Evita errores de transcripción por caracteres parecidos (0/O, I/l) y mantiene la salida seleccionable con doble clic (sin caracteres que el terminal dividiría).
Mecanismo
El flujo de bytes de entrada se trata como un único entero grande, reducido repetidamente módulo 58 para derivar cada índice de carácter (como una conversión de base); los bytes cero iniciales se proyectan a unos iniciales. Como la proyección no está alineada a bits, la longitud codificada no es fija y la decodificación requiere aritmética de enteros grandes.
Casos de uso
- Codificación de direcciones Bitcoin / Litecoin
- Representación multibase de CID de IPFS
- Direcciones Monero
- Generación de enlaces cortos y códigos de invitación
Ejemplos
- entrada
Hello WorldOutputJxF12TrwUP45BMdThe Bitcoin Base58 alphabet
Errores comunes
- Assuming Base58 works on 6-bit groups (it is actually big-integer modulo arithmetic)
- Use a big-integer, byte-by-byte implementation or a mature library