(一)区块链钱包之生成助记词
(二)区块链钱包之创建钱包地址
(三)区块链钱包之加密算法简介
(四)区块链钱包之创建比特离线交易(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 助记词个数
16 12
20 15
24 18
28 21
32 25

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

希望我的分享能帮助到大家

(一)区块链钱包之生成助记词相关推荐

  1. 基于Java的Android区块链开发之生成助记词(位数可选)

    基于Java的Android区块链开发之生成助记词 位数可选 具体实现代码 这里使用bitcoinj库,来实现生成bip39的12个助记词,引用库 implementation 'org.bitcoi ...

  2. 私钥,公钥,钱包地址,助记词,keyStore的区别

    私钥,公钥,钱包地址,助记词,keyStore的区别 私钥:本质上是一个包含64位的随机数,是随机生成的 公钥:公钥是由私钥经过加密算法后生成的,拥有私钥,可以算出公钥,拥有公钥却不能算出私钥 钱包地 ...

  3. 比特币钱包(4) BIP39 助记词

    1. 定义生成助记词 助记词句子(mnemonic word sequence)作为密码,使用若干个助记词来替换之前直接生成随机数的方式(确定性钱包的种子随机数). 1.1. 生成步骤 1) . 生成 ...

  4. imToken—钱包如何导出助记词?

    imToken钱包tokenw.me 是现在很受投资者欢迎的一款轻钱包,该钱包不仅使用非常方便,并且还十分的安全.不管是从下载安装角度,还是去中心化的角度,亦或是使用的角度上来说,该钱包都是安全的.i ...

  5. Android(以太坊)生成助记词

    Android(以太坊)生成助记词 之前都是看别人的文章,很少自己写,有时即使是自己摸索出的解决方案(无法直接搜到)的也没有记录下来, 说白了其实就是懒. 先从小的写起,一点一点把还没忘记的记录一下吧 ...

  6. java助记词反向_GitHub - gangan1345/mnemonic-sdk: Mnemonic bip39 bip32 bip44 生成助记词 私钥...

    mnemonic-sdk Mnemonic bip39 bip32 bip44 支持 BIP39 助记词 支持 BIP32 子私钥 支持 BIP44 多币种管理 Install Gradle: Add ...

  7. bip39:使用bip39生成助记词

    助记词 从HD钱包的创建方式可知,要创建一个HD钱包,我们必须首先有一个确定的512bit(64字节)的随机数种子. 如果用电脑生成一个64字节的随机数作为种子当然是可以的,但是恐怕谁也记不住. 如果 ...

  8. vue+vite项目当中:介绍一种生成助记词新方法,兼容以太坊

    在上一篇文章 当中我介绍了使用bip39生成助记词,在vue3不同的框架vite.vue-cli当中引入配置的方法.虽然可以生成助记词但是,需要进行大量的配置,尤其是在vite+ES6+vue3项目当 ...

  9. PHP生成助记词和BTC、ETH、LTC地址

    本文作者:陈进坚 个人博客:https://jian1098.github.io CSDN博客:https://blog.csdn.net/c_jian 简书:https://www.jianshu. ...

最新文章

  1. php多浏览器支持,测试网站在多个浏览器中的兼容性:MultiBrowser ┆V1.3.1 多国语言版...
  2. DVS/DVR常见的监控名词
  3. Mono新突破:CentOS 7.2下安装Mono 5.0
  4. bash/shell编程学习(2)
  5. 【CSWS2014 Summer School】大数据下的游戏营销模式革新-邓大付
  6. [译] 搜索结果页的最佳实践
  7. qchart 坐标轴设置_「Qt」利用QChart实现实时动态的曲线数据展示
  8. 地震数据爬取——Scrapy爬虫框架应用
  9. tabbar图标大小更改
  10. 金蝶KIS旗舰版新建,恢复帐套时提示:ActiveX部件不能创建对象
  11. 虚拟现实大作业——太阳系
  12. 平台交叉打包 GYP
  13. java xml 查询_java对xml进行查询操作代码
  14. 玩qq游戏提示计算机内存不足,Win8系统下玩lol提示关闭程序以防止信息丢失内存不足怎么办...
  15. 英文字体设计标志需要注意什么?
  16. daimayuan每日一题#849 国家铁路
  17. WORD公式居中、题注插入、交叉引用
  18. [转]中国将建口径8米巨型太阳望远镜
  19. C语言——用函数方法判断闰年
  20. 【华为报考全攻略】华为考试自己如何报考?

热门文章

  1. 横截面数据、时间序列数据和面板数据
  2. 开源的 .NET 工作流引擎 Elsa 开源
  3. R数据分析:逐步回归的做法和原理,案例剖析
  4. 七大设计原则之单一职责原则应用
  5. 如何在Linux环境下用虚拟机跑Windows!
  6. ARIS Architect 多租户(Tenant)
  7. 《C++程序设计原理与实践》笔记 第15章 绘制函数图和数据图
  8. Linux进程-守护进程
  9. python爬取链家_python+scrapy爬虫(爬取链家的二手房信息)
  10. 论文笔记: 可解释神经聚类 (鹏鹏专用)