Quantcast
Channel: Active questions tagged base58check - Bitcoin Stack Exchange
Viewing all articles
Browse latest Browse all 23

Why does my implementation of hex to Base58check produce different results than the example?

$
0
0

Step 8 of this wiki page gives this hex value: 00010966776006953D5567439E5E39F86A0D273BEED61967F6

Step 9 converts it to this base58 string:16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM

I'm trying to implement the conversion function using the pseudocode from this wiki page. This is my implementation (in Java):

    String input = "00010966776006953D5567439E5E39F86A0D273BEED61967F6"    BigInteger bigInteger = new BigInteger(input , 16);    String code_string = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";    StringBuilder output = new StringBuilder();    while(bigInteger.compareTo(BigInteger.ZERO) == 1){        BigInteger[] divAndRemainder = bigInteger.divideAndRemainder(BigInteger.valueOf(58));        output.append(code_string.charAt(divAndRemainder[1].intValue()));        bigInteger = divAndRemainder[0];    }    int i=0;    while(concat.charAt(i) == '0'){        i++;        output.append(code_string.charAt(0));    }    System.out.println(output.reverse());

This prints out 1116UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM. This is close to what the wiki page produces, but not quite, there are 2 extra leading 1s. This is from the 2 leading 0s in the input string. Why doesn't the wiki example get my result?


Viewing all articles
Browse latest Browse all 23

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>