Java: Cadena codificada en Base58

Me gustaría codificar en Base58 esta cadena:

    56379c7bcd6b41188854e74169f844e8676cf8b8

Mi código Java actual se ve así:

    String test9 = "56379c7bcd6b41188854e74169f844e8676cf8b8";
    byte[] b2 = new BigInteger(test9,16).toByteArray();
    String test8 = Base58.encode(b2);
    System.out.println(test8);

Como resultado obtengo:

    2CffxtJsCdzJEaHXHjSkvb12p12P

pero debería obtener:

    39YteymR86cG7V3Kijg8Gm2ST1r4nTeM1b

¿Puede alguien ayudarme por favor?

@Ryan_McGeary ¿Cuál es la biblioteca a la que tienes acceso a la clase Base58? Me gusta saber.

Respuestas (1)

Su salida es correcta dada la entrada que utilizó.

Sin embargo, si espera obtener una dirección de salida de 39YteymR86cG7V3Kijg8Gm2ST1r4nTeM1b, parece que su entrada es incorrecta. Falta el primer byte y los últimos 4 bytes (codificados como hexadecimal):

  Your Input: --56379c7bcd6b41188854e74169f844e8676cf8b8--------
Proper Input: 0556379c7bcd6b41188854e74169f844e8676cf8b86e1b34ba

Pruebe esta herramienta para validar sus expectativas :

Formulario de ejemplo

¡Gracias! ¿De dónde sabías que necesito agregar 05 y 6e1b34ba?
No sé la dirección antes. Solo conozco la cadena que luego debe codificarse en base58 para mostrarme la dirección.
@Ac Del sitio al que me vinculé en mi respuesta. Invertí tu salida esperada.