java|区块链开发与交流群: 613121183
有兴趣的也可以加下哈,提供了不少区块链资料,以后有资料可以相会共享
本文感谢diyanchn的耐心、细致的指导。
Bip-0039改进协议
以HD账户的私钥明文12个单词为例,手动生成12个单词,举例如下:
用抛硬币的方法生成
一个随机
128bit
的值,记正面为
1
,背面为
0
。得到如下结果
:
11100110111111000001111110100010001000011110010100001111010101101110100001100000110001100101011110000010111011101001001110000001
(
2
进制)
把上面的结果由
2
进制转化为
16
进制,得到如下结果:
E6FC1FA221E50F56E860C65782EE9381(16进制)
对上面的十六进制值做一下SHA256,可以做SHA256的二个网站,可以任选其一:
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
|