Idioma: Español

tools / base58

base58/

Convierte texto o hex a Base58 y de Base58 con el alfabeto de Bitcoin. Cada byte 00 inicial se convierte en un 1 inicial.

Entrada

Base58

Preguntas frecuentes

¿Por qué Base58 no tiene 0, O, I ni l? ¿Y qué hago si al decodificar sale que un carácter no está en el alfabeto?

Base58 elimina el dígito 0, la O mayúscula, la I mayúscula y la l minúscula porque es fácil confundirlos al leerlos o copiarlos a mano. Quedan 58 caracteres: del 1 al 9, de la A a la Z sin I ni O, y de la a a la z sin l. Cuando la decodificación encuentra un carácter fuera del alfabeto, la herramienta indica cuál es y en qué posición está. Comprueba si al copiar se colaron comillas, signos de puntuación o caracteres invisibles; los espacios y los saltos de línea se ignoran automáticamente. Si la cadena contiene realmente 0, O, I o l, probablemente no sea Base58, sino Base64, hex u otra codificación.

Al decodificar Base58 sale que el resultado no es texto UTF-8 válido. ¿Qué hago?

Significa que los bytes decodificados no son texto UTF-8. Las claves privadas, los hashes de claves públicas y las direcciones son datos binarios desde el principio. Cambia el formato de salida a hex para ver los bytes en bruto. El texto siempre se trata como UTF-8, así que los bytes escritos en GBK u otra codificación no se pueden mostrar como texto aquí; usa una herramienta que admita esa codificación.

¿Qué significa el 1 inicial de un resultado Base58 y por qué un 00 inicial en hex se convierte en 1?

Base58 trata toda la cadena de bytes como un entero enorme y le cambia la base, así que los bytes 00 iniciales desaparecerían porque no aportan nada al valor. Por convención, cada byte 00 inicial se escribe como un 1 inicial (el primer carácter del alfabeto). Por ejemplo, el hex 0000010203 da 11Ldp, y los dos 1 iniciales representan los dos 00. Al decodificar, cada 1 inicial vuelve a ser un byte 00; una entrada formada solo por bytes 00 acaba siendo solo una serie de 1.

¿Se pueden decodificar direcciones de Bitcoin? ¿Y la suma de comprobación de Base58Check?

Las decodifica a bytes, pero no verifica nada. Las direcciones de Bitcoin usan Base58Check: un byte de versión, los datos y una suma de comprobación de 4 bytes, unidos y luego codificados en Base58. Esta herramienta solo hace Base58 normal, así que al decodificar obtienes todos los bytes en bruto sin que se compruebe ni se quite la suma de comprobación, y al codificar tampoco se añade ninguna. Por ejemplo, 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa se decodifica (con salida en hex) en 25 bytes: 1 byte de versión 00, un hash de 20 bytes y, al final, 4 bytes de suma de comprobación.

¿Qué diferencia hay entre Base58 y Base64?

Base64 usa 64 caracteres (incluidos + y /, con relleno = al final) y convierte de 3 en 3 bytes, por lo que es rápido y la longitud de la salida es predecible. Base58 elimina los caracteres que se confunden, además de +, / y =, de modo que un doble clic selecciona toda la cadena y copiarla a mano da menos errores. El precio es que divide un entero enorme, así que se vuelve más lento cuanto más larga es la entrada; por eso se usa sobre todo con datos cortos, como direcciones y claves, de unas pocas decenas de bytes. Las dos salidas no son intercambiables.

¿Por qué mi resultado es distinto del de otro sitio o biblioteca?

Comprueba tres cosas. Alfabeto: esta herramienta usa el alfabeto de Bitcoin; el de Flickr pone las minúsculas primero y el de Ripple usa otro orden distinto, así que los resultados difieren. Entrada: el texto se codifica en UTF-8 exactamente como está escrito, por lo que un salto de línea o un espacio de más al final cambia el resultado. Formato de entrada: si vas a codificar bytes en hex, elige hex; si no, 0a1b se trata como un texto de cuatro caracteres. La entrada hex puede usar espacios, dos puntos, comas o prefijos 0x como separadores, y debe tener un número par de dígitos.

¿Hay un límite de longitud para la entrada de Base58?

Sí. Se pueden codificar hasta 32768 bytes y decodificar hasta 45000 caracteres; si te pasas, se te pide dividir el contenido. El trabajo que exige Base58 crece con el cuadrado de la longitud, así que el límite evita que la página se congele. Con unos pocos KB o menos, el resultado es prácticamente instantáneo.

¿Se sube lo que introduzco?

No. La codificación y la decodificación se hacen en tu navegador y no se envía nada a ningún servidor.