base58 no puede obtener resultados de 34 caracteres (como lo hace la dirección de Bitcoin) pero 68 caracteres

Estoy tratando de convertir la clave pública hexadecimal a la dirección de Bitcoin.

Desde este sitio web http://gobittest.appspot.com/Address , puedo hacer algunas pruebas.

Por ejemplo, tengo esta clave pública:

04b4d653fcbb4b96000c99343f23b08a44fa306031e0587f9e657ab4a2541129368d7d9bb05cd8afbdf7705a6540d98028236965553f91bf1c5b4f70073f55b55d

Según el sitio web, la dirección debe ser:

1DU8Hi1sbHTpEP9vViBEkEw6noeUrgKkJH

que es la codificación base58 de 0088C2D2FA846282C870A76CADECBE45C4ACD72BB655DA1216.

Sin embargo, si hago la codificación Base58 directamente en 0088C2D2FA846282C870A76CADECBE45C4ACD72BB655DA1216este sitio web https://www.browserling.com/tools/base58-encode , obtendré:

bSLwwticQjhNvEtqTMZXbn3dLmFrPvNrDGE4hmHsfADpHWb3b2ruh3XqtNzv8ESS8V6V

que es totalmente diferente de la dirección Bitcoin de 34 caracteres.

¿Alguien sabe por qué?

Respuestas (2)

Cuando usa ese sitio, está codificando el hexadecimal como una cadena hexadecimal, no de los bytes reales que deberían ser. La codificación base58 para direcciones opera en los propios bytes que se representan en la cadena hexadecimal. Sin embargo, ese sitio web solo codifica la cadena hexadecimal (que, como bytes, tiene el doble de longitud y es completamente otro dato).

Andrew Chow te dijo por qué . Ahora te diré cómo.

Primero, convierta hexadecimal a ASCII (sugiero este sitio web )

(No puedo copiar el resultado ASCII a continuación, ya que eso causaría problemas).

Luego copie el texto ASCII de aspecto extraño que creó y péguelo en el Codificador Base58.

ingrese la descripción de la imagen aquí

¡Hecho!