手动生成HD钱包种子教程

java|区块链开发与交流群: 613121183

有兴趣的也可以加下哈,提供了不少区块链资料,以后有资料可以相会共享


本文感谢diyanchn的耐心、细致的指导。
Bip-0039改进协议
以HD账户的私钥明文12个单词为例,手动生成12个单词,举例如下:
用抛硬币的方法生成 一个随机 128bit 的值,记正面为 1 ,背面为 0 。得到如下结果 :
11100110111111000001111110100010001000011110010100001111010101101110100001100000110001100101011110000010111011101001001110000001 2 进制)
把上面的结果由 2 进制转化为 16 进制,得到如下结果:
E6FC1FA221E50F56E860C65782EE9381(16进制)
对上面的十六进制值做一下SHA256,可以做SHA256的二个网站,可以任选其一:
http://www.fileformat.info/tool/hash.htm(填入第2个格子)
SHA256的值是:
F5880C8CABADD04F5E53D94BBE48EE1E38E6139F7EA8C9A2657FEEE241AC3E4C(16进制)
把16进制转化为2进制:
1111010110001000000011001000110010101011101011011101000001001111010111100101001111011001010010111011111001001000111011100001111000111000111001100001001110011111011111101010100011001001101000100110010101111111111011101110001001000001101011000011111001001100 2 进制)
注意:上面二进制的长度为256bit,如不足256bit,前面加零补足256bit。
取上面生成数2进制的前4位 1111,加入抛硬币产生的128bit二进制的末尾:
11100110111111000001111110100010001000011110010100001111010101101110100001100000110001100101011110000010111011101001001110000001 1111
以上数共 132位,分割成 12段,每段 11位,如下:
11100110111
11100000111
11101000100
01000011110
01010000111
10101011011
10100001100
00011000110
01010111100
00010111011
10100100111
0000001 1111
将上面的数换算至 10进制,如下:
11100110111       1847
11100000111       1799
11101000100       1860
01000011110       542
01010000111       647
10101011011       1371
10100001100       1292
00011000110       198
01010111100       700
00010111011       187
10100100111       1319
0000001 1111       31
对照Bip-0039单词表
所有语言的单词表(英文、简体中文、繁体中文、日语、西班牙语、法语、意大利语)如下:
此单词表共有2048个单词,序号为1-2048,但因为11位2进制表达是00000000000-11111111111,转化为10进制为0-2047, 故在使用的时候把每个单词序号减1。
对照单词表,结果如下:
11100110111       1847     tragic
11100000111       1799     thought
11101000100       1860     trigger
01000011110       542      duck
01010000111       647      extend
10101011011       1371     problem
10100001100       1292     pave
00011000110       198      boat
01010111100       700      fiscal
00010111011       187      blast
10100100111       1319     pilot
0000001 1111       31        advance
tragic thoughttrigger duck extend problem pave boat fiscal blast pilot advance
以上便是通过手动生成HD钱包种子的全过程。
生成HD钱包的第一个地址为:122aiyvADev9P4B9bAHtwSk8aWExtqacnW
生成HD钱包的第一个地址的私钥为:Ky9fWUuDGZpe8f4FZ9X33rqRPgQePtZiXrd7SYrTsBJ9ddWZ1eMK
可能用到的工具:
SHA256值生成工具: http://idgui.com/N/#others

猜你喜欢

转载自blog.csdn.net/taoanbang/article/details/79913768