I am trying to learn more about how bitcoin addresses are created. I am following along with the tutorial at https://en.bitcoin.it/wiki/Wallet_import_format
I undertsand how they do the first six steps however I do not understand how to go from step 6 to step 7
they have 800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D507A5B8D
and they get the private key of 5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ
I have read from here that I need to do put the version byte in front which is 00 so I have
00800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D507A5B8D
then I need to do sha256(sha256(result)) = 74944C34 (first 4 bytes) then I have
00800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D507A5B8D74944C34
then I am running it through this test vb.net code (I will put it in a loop once I get it working)
Dim number As BigInteger = System.Numerics.BigInteger.Parse("00800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D507A5B8D74944C34", NumberStyles.HexNumber)
Dim count As BigInteger = number / 58
Dim remainder As Integer = number Mod 58
MessageBox.Show(count.ToString())
MessageBox.Show(remainder.ToString())
count = count / 58
remainder = count Mod 58
MessageBox.Show(count.ToString())
MessageBox.Show(remainder.ToString())
count = count / 58
remainder = count Mod 58
MessageBox.Show(count.ToString())
MessageBox.Show(remainder.ToString())
for some reason the numbers are 48,37,3 but this does not line up with the chart on the second link and the answer which is 5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ
can someone please show me what I am doing wrong and help me understand the base58encode?
thanks