(一)区块链钱包之生成助记词

10 篇文章 0 订阅
6 篇文章 0 订阅

(一)区块链钱包之生成助记词
(二)区块链钱包之创建钱包地址
(三)区块链钱包之加密算法简介
(四)区块链钱包之创建比特离线交易(BTC交易)
(五)区块链钱包之创建以太坊交易(ETH交易)

  1. 助记词

明文私钥的另一种表现形式,最早是由 BIP39 提案提出,其目的是为了帮助用户记忆复杂的私钥 ( 64 位的哈希值)。助记词一般由12、15、18、21个单词构成,这些单词都取自一个固定词库(2048个),其生成顺序也是按照一定算法而来,所以用户没必要担心随便输入 12 个单词就会生成一个地址。

  1. 生成过程

生成一个128位随机数,再加上对随机数做的校验4位,得到132位的一个数,然后按每11位做切分,这样就有了12个二进制数,然后用每个数去查BIP39定义的单词表,这样就得到12个助记词(当然不一定都是12位)。

  1. 上代码

导入Gradle依赖

api group: 'org.bitcoinj', name: 'bitcoinj-core', version: '0.15.10'
  public static List<String> getMnemonicKeyWords() {
    try {
      List<String> strings;
      HashSet<String> hashSet = new HashSet<>();
      do {
        MnemonicCode mnemonicCode = new MnemonicCode();
        byte[] bytes = new byte[16];
        SecureRandom random = new SecureRandom();
        random.nextBytes(bytes);
        strings = mnemonicCode.toMnemonic(bytes);
        hashSet.clear();
        hashSet.addAll(strings);
      } while (hashSet.size() != 12);
      return strings;
    } catch (Exception e) {
      e.printStackTrace();
    }
    return null;
  }

byte数组length必须是4的倍数,它决定助记词个数

byte lenth助记词个数
1612
2015
2418
2821
3225

注意:生成的助记词中可能有重复的,所有为了安全最好去重。

希望我的分享能帮助到大家
在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值