Elige según el receptor
Empieza por el formato que exige el sistema receptor, no por el nombre que parece más compacto. Base64 estándar utiliza letras, números, más y barra; algunos contextos piden en cambio la variante Base64URL. Base32 emplea letras mayúsculas y los dígitos del 2 al 7. Base58 con alfabeto de Bitcoin omite caracteres fáciles de confundir al copiarlos, como cero, O mayúscula, I mayúscula y ele minúscula. Los tres pueden representar los mismos bytes, pero un receptor que espera uno no reconoce necesariamente los demás. Ninguno cifra el mensaje: quien disponga del decodificador adecuado puede recuperar los bytes originales.
Un ejemplo con la misma entrada
Toma el texto ASCII Man. Sus bytes UTF-8 son 4D 61 6E en hexadecimal. Base64 estándar los escribe TWFu. Base32 según RFC 4648 los escribe JVQW4===, con relleno hasta completar un bloque de ocho caracteres. La herramienta Base58 enlazada representa esos bytes con el alfabeto Bitcoin y sin relleno de iguales. Los resultados difieren porque cada alfabeto divide el flujo de bits o el número de otra manera; el texto sigue siendo el mismo. Introduce Man en el codificador Base32 integrado y prueba el decodificador correspondiente. Haz lo mismo con Base64 y Base58, y compara los textos después de decodificarlos.
- UTF-8: Man → 4D 61 6E
- Base64: TWFu · Base32: JVQW4===
- Base58: otro alfabeto; decodifica de nuevo Man
Relleno, variantes y suma de comprobación
Las especificaciones de Base64 y Base32 tratan el relleno con signos iguales. Algunas aplicaciones lo omiten de forma deliberada; otras lo exigen. Sigue la regla concreta del receptor. Base58 no usa ese relleno en esta implementación. No confundas tampoco Base58 simple con Base58Check de Bitcoin: una dirección incluye datos de versión y una suma de comprobación antes de representarse en Base58. El convertidor Base58 de MultiVerto codifica texto UTF-8; no crea direcciones Bitcoin ni valida la suma de Base58Check. Base64 estándar y Base64URL también difieren en caracteres importantes para las URL. Una variante incorrecta puede rechazarse aunque los bytes de fondo sean correctos.
Comprueba bytes, no solo caracteres
El texto se transforma primero en bytes mediante una codificación de caracteres. MultiVerto usa UTF-8 para sus herramientas Base32 y Base58, de modo que una letra acentuada puede ocupar varios bytes. Para estimar el tamaño, cuenta bytes y no letras visibles. Un espacio añadido a la entrada también cambia el resultado. Si dos salidas no coinciden, registra el texto original, sus bytes UTF-8, el alfabeto, la política de relleno y el decodificador esperado. Decodifica la salida y compara el texto reconstruido. Si necesitas transportar archivos binarios arbitrarios, comprueba que tu sistema conserve los bytes sin convertirlos previamente en texto.
Respeta el contrato de intercambio
Para un campo MIME, una clave de API, un código QR o un identificador escrito a mano, consulta la especificación aplicable antes de elegir alfabeto. Base64 es frecuente en intercambios entre máquinas; Base32 puede convenir cuando importa un conjunto restringido de caracteres; Base58 aparece en sistemas preparados para transcripción humana. Son usos habituales, no garantías. La codificación sola no asegura integridad ni autenticidad: el formato exterior necesita una suma, firma o protección autenticada si quieres detectar cambios. Guarda un vector de prueba breve como Man en tu integración y verifica tanto la codificación como la decodificación justo en el límite entre sistemas.