Bip44确定性算法的Java实现库(Android和java平台都可以使用)
简介
这是一个Bip44确定性算法的Java实现库(Android和java平台,都可以使用),可以生成12个助记词,seed种子和根据path路径生成路径的私钥.
对Bip44确定算法不了解的可以看我之前的一篇文章:区块链开发之确定性算法bip32,bip39,bip44
项目地址:https://github.com/wypeng2012/Bip44ForJava
欢迎star
- 如何使用
代码:
//get 12 wordsList<String> words = Bip44Utils.generateMnemonicWords();System.out.println("words: " + words.toString());// get bip39 seedbyte[] seed = Bip44Utils.getSeed(words);System.out.println("seed: " + new BigInteger(1,seed).toString(16));//get PrivateKey by pathBigInteger pri1 = Bip44Utils.getPathPrivateKey(words,"m/44'/194'/0'/0/0");System.out.println("pri1: " + pri1.toString(16));BigInteger pri2 = Bip44Utils.getPathPrivateKey(words,seed,"m/44'/194'/0'/0/0");System.out.println("pri2: " + pri2.toString(16));byte[] pri3 = Bip44Utils.getPathPrivateKeyBytes(words, "m/44'/194'/0'/0/0");System.out.println("pri3: " + new BigInteger(1,pri3).toString(16));byte[] pri4 = Bip44Utils.getPathPrivateKeyBytes(words, seed,"m/44'/194'/0'/0/0");System.out.println("pri4: " + new BigInteger(1,pri4).toString(16));byte[] pri5 = Bip44Utils.getDefaultPathPrivateKeyBytes(words, 194);System.out.println("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.52it</groupId><artifactId>Bip44ForJava</artifactId><version>1.0.0</version>
</dependency>
- Gradle
compile 'party.52it:Bip44ForJava:1.0.0'orimplementation 'party.52it:Bip44ForJava:1.0.0'
- Ivy
<dependency org='party.52it' name='Bip44ForJava' rev='1.0.0'/>
- coin_type link
https://github.com/satoshilabs/slips/blob/master/slip-0044.md
Bip44确定性算法的Java实现库(Android和java平台都可以使用)相关推荐
- android java静态库,Android make 中变量记录
转换mk文件到bp文件 $ out/soong/host/linux-x86/bin/androidmk Android.mk > Android.bp 编译不同类型的模块 编译成 Native ...
- android p2p 连接服务器上,当通过Wi-Fi P2P使用网络服务发现时无法连接到Android设备每个人都可以使用网络服务发现...
! 我正在开发一个Android应用程序,允许与附近已安装此应用程序的设备聊天.为了做到这一点,我使用Wi-Fi P2P API和网络服务发现来搜索附近的设备. 我已经编写了用于在服务启动的线程中搜索 ...
- 太理java题库_2020年Java题库整理
2020年Java题库整理(WUST) 前言:去我的个人博客阅读效果更好哟. 知识点整理: 1.Java 语言具有跨平台性, 是一种面向对象的语言,程序具有可移植性,不可多继承. 2.Java的标准版 ...
- android java静态库,Android NDK开发相关知识集合
1.关于方法名 调用 native 方法之前,首先要调用 System.loadLibrary 接口加载一个实现了native 方法的动态库才能正常访问,否则就会抛出 java.lang.Unsati ...
- 2021年国内一线互联网大厂内部题库Android面试(Java篇)
9.进程和线程的区别(猎豹) 简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高. 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内 ...
- android java 调用js,Android中Java和JavaScript交互实例
Android提供了一个很强大的WebView控件用来处理Web网页,而在网页中,JavaScript又是一个很举足轻重的脚本.本文将介绍如何实现Java代码和Javascript代码的相互调用. 如 ...
- java图像识别库_CognitiveJ一个Java的人脸图像识别开源分析库
CognitiveJ 是一个开源的,支持 Java 8 API 的库,用于管理和编排 Java 应用和微软的Cognitive(Project Oxford)机器学习和图像处理库的项目,可以让你查询以 ...
- android java.lang.illegalstateexception,Android异常 java.lang.IllegalStateException解决方法
Android异常详情介绍 这种异常我遇到以下两种情况: 1. java.lang.IllegalStateException: No wrapped connection. 2.java.lang. ...
- 苏大JAVA题库_苏州大学Java程序设计课程试卷含答案(B)
苏州大学Java程序设计课程试卷(B)卷及参考答案共6页 一.选择题(2分*25= 50分) 1.Java语言的最大优点是:它是一种( C )的程序设计语言. A) 安全性 B) 多线性 C) 跨平台 ...
- 大学生java考试题库6_《JAVA程序设计》期末考试试题_(六)
<JAVA程序设计>期末考试试题 (六) 一.填空题 1.定义类的保留字是( class ),定义接口的保留字是( interface ). 2.Socket通常也称为 ( 套接字 ),用 ...
最新文章
- 第三次学JAVA再学不好就吃翔(part78)--List类
- 深入理解Python中的元类(metaclass)
- sqlserver 中事务与错误机制的处理
- mysql binlog使用_mysql binlog 基本使用
- mysql 5.6.32 linux_centos7 下手动安装MySQL-5.6.32-1.linux_glibc2.5.x86_64.rpm-bundle
- python anaconda安装redis_Linux下安装python,redis
- 如何从JQuery中的each()函数中断/退出? [重复]
- (zz)最大子序列和问题
- 尚硅谷Java入门视频教程第五章——面向对象编程(中)
- 身为一个程序员该怎么去判断一个工作的好坏?
- 《横向领导力》-简述
- 解决ZeroDivisionError: integer division or modulo by zero问题
- Keil(MDK)下用仿真器烧程序的同时烧写附加数据到SPI FLASH
- 微信-软件 报警信息
- 树莓派系列(一)-——————树莓派usb串口的使用
- 微软正打造新一代 Windows 操作系统
- android开机动画不播放,android 设置activity启动退出动画 | 解决设置activity 动画不生效问题...
- 从菜鸟到架构师(一)
- grafana登录失败无法从cookie中获取用户信息
- shell脚本触发企业微信群机器人