Bip44确定性算法的android实现
简介
这是一个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
- 如何远程依赖
- Maven
<dependency><groupId>party.loveit</groupId><artifactId>bip44forandroidlibrary</artifactId><version>1.0.7</version><type>pom</type>
</dependency>
- Gradle
compile 'party.loveit:bip44forandroidlibrary:1.0.7'orimplementation 'party.loveit:bip44forandroidlibrary:1.0.7'
- Ivy
<dependency org='party.loveit' name='bip44forandroidlibrary' rev='1.0.7'><artifact name='bip44forandroidlibrary' ext='pom' ></artifact>
</dependency>
Bip44确定性算法的android实现相关推荐
- 区块链开发之生成12个助记词
我最近封装了一个库,使用起来更简单,大家可以移步这里:Bip44确定性算法的android实现 Java版的库:Bip44确定性算法的Java实现库(Android和java平台都可以使用) 这里添加 ...
- 区块链钱包开发(Android篇)
区块链钱包开发(Android篇) 2018年10月27日 23:07:08 a526247082 阅读数 6309 简介 本文主要内容为区块链钱包移动端(Android)开发,介绍比特币钱包和以太坊 ...
- Android 创建以太坊钱包
创建以太坊HD钱包 HD钱包 分层确定性钱包 先简单介绍一下钱包的原理和组成: 每一个钱包账户包含一份密钥对,即私钥与公钥.私钥(k)是一个数字,通常是随机选出的.有了私钥,我们就可以使用椭圆曲线乘法 ...
- Unity5.6+ 导出Android 应用程序apk的环境配置及导出过程
首先下载并安装安卓SDK和java的JDK 安卓sdk下载: http://www.android-studio.org/ 也可以在这下载: 链接:http://pan.baidu.com/s/1bp ...
- Android 的NDK的Makefile编写
Android.mk 是google根据Linux GNU Makefile精简编译脚本.具体来说:这就是GNU Makefile的一小部分. 举一个简单例子: LOCAL_PATH := $(cal ...
- Android Animation (安卓动画)概念简介
Android Animation Android 四种动画分别为逐帧动画和补间动画.属性动画.过渡动画: Frame Animation (逐帧动画) 实现方式:xml 和 Java代码 图片跳转的 ...
- 基于Android和SpringBoot的购物App
(Shopping)购物应用商城 本软件使用Android和SpringBoot.JavaWeb技术实现:并结合百度LBS平台的SDK.支付宝App支付客户端SDK.MobTech的ShareSDK: ...
- Android数据持久化:SharePreference
SharePreference:作为Android数据持久化的一种,具有一定的便捷性,适合存储一些体积小的数据. 存储数据方式:键值对的方式,类似于Map: 利用SharePreference.Edi ...
- Android数据持久化:文件存储
数据持久化: 数据可分为瞬时数据和关键数据.保存在内存之中的数据是瞬时数据,而对于一些关键性数据,后期需要持续使用的,应当保存在存储设备中: 持久化保存方式: 文件存储.SharePreference ...
最新文章
- Hdu 1072 【广搜】.cpp
- 将txt文件的编码格式进行修改
- PHP中获取当前页面的完整URL
- mysql replace into 语法_mysql Replace into与Insert update
- Linux 实现一个带有重定向功能的shell
- ebs oracle pl sql开发_ORACLEERP开发基础之EBS开发基础
- Oracle 临时表
- linux 数据库无法启动,【已回应】数据库无法启动,是怎么回事啊
- 浅显易懂——泰勒展开式
- 我的世界服务器增加刷怪率,我的世界:最简易刷怪空间,别再暴殄天物了!
- ou邮箱用qq邮箱服务器地址,QQ邮箱怎么设置
- 历程篇 之 我的 2019 (历时一年,只为记录美好生活~)
- Python的Request函数用法
- Java Swing(二)按钮点击事件处理ActionListener
- Java基础知识思维导图
- 3GPP: IMS视频码率自适应调整介绍
- 前端模板引擎 —— 带你学习Jade / Pug 模板引擎
- 常见三维文件格式 STL VRML X3D
- 即时消费、无接触配送、商品溯源......被按暂停的“零售行业“,正被疫情再次重启...
- (附源码)springboot基于web儿童教育网站 毕业设计111123
热门文章
- npm ERR A complete log of this run can be found in npm ERR CUsersAppDataRoamingnpm-ca
- pytorch安装错误
- 题目: =====i am biter逆置为: biteram i函数原型:
- 开发-通用设计-留痕
- 滴滴顺风车真的关了就能解决所有问题了么?
- Struts2框架详解(四)
- less、scss、sass
- selenium学习-----tag name定位一组元素
- vagrant + vitrulbox + centos8 部署单机 k8s
- 机器学习算法工程师面试总结