简介

这是一个Bip44确定性算法的Android实现库,可以生成12个助记词,seed种子和根据path路径生成路径的私钥.

对Bip44确定算法不了解的可以看我之前的一篇文章:
区块链开发之确定性算法bip32,bip39,bip44

项目地址:https://github.com/wypeng2012/Bip44ForAndroid

欢迎star

support Android sdk >= 14

PS:- coin_type link

https://github.com/satoshilabs/slips/blob/master/slip-0044.md

- 如何使用

代码如下:

//get 12 wordsList<String> words = Bip44Utils.generateMnemonicWords(MainActivity.this);Log.e("TAG", "words: " + words.toString());// get bip39 seedbyte[] seed = Bip44Utils.getSeed(words);Log.e("TAG", "seed: " + new BigInteger(1,seed).toString(16));//get PrivateKey by pathBigInteger pri1 = Bip44Utils.getPathPrivateKey(words,"m/44'/194'/0'/0/0");Log.e("TAG", "pri1: " + pri1.toString(16));BigInteger pri2 = Bip44Utils.getPathPrivateKey(words,seed,"m/44'/194'/0'/0/0");Log.e("TAG", "pri2: " + pri2.toString(16));byte[] pri3 = Bip44Utils.getPathPrivateKeyBytes(words, "m/44'/194'/0'/0/0");Log.e("TAG", "pri3: " + new BigInteger(1,pri3).toString(16));byte[] pri4 = Bip44Utils.getPathPrivateKeyBytes(words, seed,"m/44'/194'/0'/0/0");Log.e("TAG", "pri4: " + new BigInteger(1,pri4).toString(16));byte[] pri5 = Bip44Utils.getDefaultPathPrivateKeyBytes(words, 194);Log.e("TAG", "pri5: " + new BigInteger(1,pri5).toString(16));//if you use bitcoinj library,you can generate bitcoin privatekey and public key and address like this:BigInteger pribtc = Bip44Utils.getPathPrivateKey(words,"m/44'/0'/0'/0/0");ECKey ecKey = ECKey.fromPrivate(pribtc);String publicKey = ecKey.getPublicKeyAsHex();String privateKey = ecKey.getPrivateKeyEncoded(networkParameters).toString();String address = ecKey.toAddress(networkParameters).toString();//if you use web3j library,you can generate bitcoin privatekey and public key and address like this:BigInteger prieth = Bip44Utils.getPathPrivateKey(words,"m/44'/60'/0'/0/0");ECKeyPair ecKeyPair = ECKeyPair.create(prieth);String publicKey = Numeric.toHexStringWithPrefix(ecKeyPair.getPublicKey());String privateKey = Numeric.toHexStringWithPrefix(ecKeyPair.getPrivateKey());String address = "0x" + Keys.getAddress(ecKeyPair);

打印结果:


words: [course, question, calm, west, basket, kitten, salmon, absorb, tool, ankle, mixed, endorse]seed: c03f5488370482658066b96a803fcceac46b68181024a545d814344cbf7d9da9b478a20d0b95ebef268b7c24afd4540c59a4567146d45d2db891ca2576d409c7pri1: 6ef7a396546d4fcf26865e54033ad48db858d19b5a08782014a652f4b5469037pri2: 6ef7a396546d4fcf26865e54033ad48db858d19b5a08782014a652f4b5469037pri3: 6ef7a396546d4fcf26865e54033ad48db858d19b5a08782014a652f4b5469037pri4: 6ef7a396546d4fcf26865e54033ad48db858d19b5a08782014a652f4b5469037pri5: 6ef7a396546d4fcf26865e54033ad48db858d19b5a08782014a652f4b5469037

- 如何远程依赖

  1. Maven
<dependency><groupId>party.loveit</groupId><artifactId>bip44forandroidlibrary</artifactId><version>1.0.7</version><type>pom</type>
</dependency>
  1. Gradle
compile 'party.loveit:bip44forandroidlibrary:1.0.7'orimplementation 'party.loveit:bip44forandroidlibrary:1.0.7'
  1. Ivy
<dependency org='party.loveit' name='bip44forandroidlibrary' rev='1.0.7'><artifact name='bip44forandroidlibrary' ext='pom' ></artifact>
</dependency>

Bip44确定性算法的android实现相关推荐

  1. 区块链开发之生成12个助记词

    我最近封装了一个库,使用起来更简单,大家可以移步这里:Bip44确定性算法的android实现 Java版的库:Bip44确定性算法的Java实现库(Android和java平台都可以使用) 这里添加 ...

  2. 区块链钱包开发(Android篇)

    区块链钱包开发(Android篇) 2018年10月27日 23:07:08 a526247082 阅读数 6309 简介 本文主要内容为区块链钱包移动端(Android)开发,介绍比特币钱包和以太坊 ...

  3. Android 创建以太坊钱包

    创建以太坊HD钱包 HD钱包 分层确定性钱包 先简单介绍一下钱包的原理和组成: 每一个钱包账户包含一份密钥对,即私钥与公钥.私钥(k)是一个数字,通常是随机选出的.有了私钥,我们就可以使用椭圆曲线乘法 ...

  4. Unity5.6+ 导出Android 应用程序apk的环境配置及导出过程

    首先下载并安装安卓SDK和java的JDK 安卓sdk下载: http://www.android-studio.org/ 也可以在这下载: 链接:http://pan.baidu.com/s/1bp ...

  5. Android 的NDK的Makefile编写

    Android.mk 是google根据Linux GNU Makefile精简编译脚本.具体来说:这就是GNU Makefile的一小部分. 举一个简单例子: LOCAL_PATH := $(cal ...

  6. Android Animation (安卓动画)概念简介

    Android Animation Android 四种动画分别为逐帧动画和补间动画.属性动画.过渡动画: Frame Animation (逐帧动画) 实现方式:xml 和 Java代码 图片跳转的 ...

  7. 基于Android和SpringBoot的购物App

    (Shopping)购物应用商城 本软件使用Android和SpringBoot.JavaWeb技术实现:并结合百度LBS平台的SDK.支付宝App支付客户端SDK.MobTech的ShareSDK: ...

  8. Android数据持久化:SharePreference

    SharePreference:作为Android数据持久化的一种,具有一定的便捷性,适合存储一些体积小的数据. 存储数据方式:键值对的方式,类似于Map: 利用SharePreference.Edi ...

  9. Android数据持久化:文件存储

    数据持久化: 数据可分为瞬时数据和关键数据.保存在内存之中的数据是瞬时数据,而对于一些关键性数据,后期需要持续使用的,应当保存在存储设备中: 持久化保存方式: 文件存储.SharePreference ...

最新文章

  1. Hdu 1072 【广搜】.cpp
  2. 将txt文件的编码格式进行修改
  3. PHP中获取当前页面的完整URL
  4. mysql replace into 语法_mysql Replace into与Insert update
  5. Linux 实现一个带有重定向功能的shell
  6. ebs oracle pl sql开发_ORACLEERP开发基础之EBS开发基础
  7. Oracle 临时表
  8. linux 数据库无法启动,【已回应】数据库无法启动,是怎么回事啊
  9. 浅显易懂——泰勒展开式
  10. 我的世界服务器增加刷怪率,我的世界:最简易刷怪空间,别再暴殄天物了!
  11. ou邮箱用qq邮箱服务器地址,QQ邮箱怎么设置
  12. 历程篇 之 我的 2019 (历时一年,只为记录美好生活~)
  13. Python的Request函数用法
  14. Java Swing(二)按钮点击事件处理ActionListener
  15. Java基础知识思维导图
  16. 3GPP: IMS视频码率自适应调整介绍
  17. 前端模板引擎 —— 带你学习Jade / Pug 模板引擎
  18. 常见三维文件格式 STL VRML X3D
  19. 即时消费、无接触配送、商品溯源......被按暂停的“零售行业“,正被疫情再次重启...
  20. (附源码)springboot基于web儿童教育网站 毕业设计111123

热门文章

  1. npm ERR A complete log of this run can be found in npm ERR CUsersAppDataRoamingnpm-ca
  2. pytorch安装错误
  3. 题目: =====i am biter逆置为: biteram i函数原型:
  4. 开发-通用设计-留痕
  5. 滴滴顺风车真的关了就能解决所有问题了么?
  6. Struts2框架详解(四)
  7. less、scss、sass
  8. selenium学习-----tag name定位一组元素
  9. vagrant + vitrulbox + centos8 部署单机 k8s
  10. 机器学习算法工程师面试总结