Cómo se usa
- Pega los bytes en hexadecimal en el cuadro de entrada. Se aceptan espacios, dos puntos y el prefijo 0x.
- Lee en la salida el resultado en Base58.
- Cópialo o pulsa Intercambiar entrada y salida para decodificar el Base58 de nuevo a hexadecimal.
Cómo se convierte el hexadecimal en Base58
Primero, los dígitos hexadecimales se convierten en bytes, dos dígitos por byte, así que la entrada necesita un número par de dígitos. Después, los bytes se leen como un único número big-endian y se reescriben en base 58 con el alfabeto Bitcoin. Cada byte 00 inicial se escribe como un 1, y por eso 0000ff se convierte en 115Q, mientras que ff por sí solo se convierte en 5Q.
Base58 necesita unos 1,37 caracteres por byte, así que 64 dígitos hexadecimales (32 bytes) se reducen a 43 o 44 caracteres. El alfabeto no tiene 0, O, I, l, + ni /, de modo que el resultado es fácil de leer en voz alta, se puede seleccionar con un doble clic y cabe en una URL. Todo se calcula en tu navegador.
Cómo crear identificadores de Solana e IPFS
- Solana: una dirección es la clave pública Ed25519 de 32 bytes en Base58, sin prefijo ni suma de verificación. Pega la clave hexadecimal de 64 dígitos para obtener la dirección.
- IPFS CIDv0: un CIDv0 es un multihash sha2-256 en Base58. Pon
1220delante del resumen de 64 dígitos y obtendrás una cadena de 46 caracteres que empieza porQm. El resumen debe ser el que IPFS calculó para el bloque codificado, que no es lo mismo que el SHA-256 del archivo original.
1220 9d6c2be50f706953479ab9df2ce3edca90b68053c00b3004b7f0accbe1e8eedf
QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG
Las direcciones Bitcoin necesitan una suma de verificación
Un hash160 por sí solo no es una dirección. Una dirección Bitcoin heredada es la codificación Base58Check del byte de versión 00 seguido del hash160 de 20 bytes, y Base58Check añade antes de codificar una suma de verificación de 4 bytes calculada con un doble SHA-256. Si codificas 00 y el hash160 con Base58 simple, obtienes una cadena más corta sin suma de verificación, y los monederos la rechazan.
Usa en su lugar la página Base58Check: cambia el Formato de entrada a Hexadecimal, escribe 00 seguido del hash160 y la suma de verificación se añadirá automáticamente. Si tu hexadecimal ya termina con la suma de verificación correcta, esta página produce la misma dirección.
0062e907b15cbf27d5425399ebf6f0fb50ebb88f18 (Base58Check)
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
Hexadecimal a Base58 en código
# Python (pip install base58)
import base58
base58.b58encode(bytes.fromhex('0000ff')) # b'115Q'
// JavaScript (instalación: npm install bs58)
import bs58 from 'bs58';
bs58.encode(Buffer.from('0000ff', 'hex')); // '115Q'
Preguntas frecuentes
¿Cómo convierto un hash160 en una dirección Bitcoin?
¿Por qué el resultado empieza por varios caracteres 1?
Tu hexadecimal empieza por el mismo número de bytes 00. Base58 los conserva como caracteres 1 iniciales para que se restauren al decodificar la cadena.
¿Por qué se rechaza mi entrada hexadecimal?
El hexadecimal necesita un número par de dígitos y solo admite los caracteres 0-9 y a-f, en mayúsculas o minúsculas. Los espacios, los dos puntos y el prefijo 0x se eliminan automáticamente; cualquier otra cosa, como una letra g suelta o un dígito que falta, produce un error.