数字钱包助记词生成公私钥流程分析

salt : 通过生成一些随机的文本将其附加到密码上来生成 Hash, 主要目的是用来防止预先被计算好的彩虹表攻击。

1、助记词根据生成流程,可看数字钱包助记词生成浅析,返推算出随机byte数组。

2、salt 生成,可以窗口设置输入,也可以设置默认值。

3、通过算法 PBKDF2SHA512 , 参数 byte、salt 生成 seed 数组 (种子)。

4、通过算法 hmacSha512,初始化key可设置位默认字符串,对seed加密,生成64字节输出。

5、前32字节作为私钥(MasterKey),计算可获取对应公钥。

6、后32字节作为链码。

rawKey 生成流程:

1、parent 的 key(私钥或公钥) 和 链码 作为生成条件。

2、通过算法 hmacSha512,链码作为密钥,key+childNumber 作为待加密数据,生成64字节输出。

3、前32字节作为私钥(MasterKey),计算可获取对应公钥。

4、后32字节作为链码。

备注: 参考coinomi 源码分析

 

你可能感兴趣的:(区块链钱包)