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 源码分析