简介

这是一个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

- 远程依赖

  1. Maven
<dependency><groupId>party.52it</groupId><artifactId>Bip44ForJava</artifactId><version>1.0.0</version>
</dependency>
  1. Gradle
compile 'party.52it:Bip44ForJava:1.0.0'orimplementation 'party.52it:Bip44ForJava:1.0.0'
  1. 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平台都可以使用)相关推荐

  1. android java静态库,Android make 中变量记录

    转换mk文件到bp文件 $ out/soong/host/linux-x86/bin/androidmk Android.mk > Android.bp 编译不同类型的模块 编译成 Native ...

  2. android p2p 连接服务器上,当通过Wi-Fi P2P使用网络服务发现时无法连接到Android设备每个人都可以使用网络服务发现...

    ! 我正在开发一个Android应用程序,允许与附近已安装此应用程序的设备聊天.为了做到这一点,我使用Wi-Fi P2P API和网络服务发现来搜索附近的设备. 我已经编写了用于在服务启动的线程中搜索 ...

  3. 太理java题库_2020年Java题库整理

    2020年Java题库整理(WUST) 前言:去我的个人博客阅读效果更好哟. 知识点整理: 1.Java 语言具有跨平台性, 是一种面向对象的语言,程序具有可移植性,不可多继承. 2.Java的标准版 ...

  4. android java静态库,Android NDK开发相关知识集合

    1.关于方法名 调用 native 方法之前,首先要调用 System.loadLibrary 接口加载一个实现了native 方法的动态库才能正常访问,否则就会抛出 java.lang.Unsati ...

  5. 2021年国内一线互联网大厂内部题库Android面试(Java篇)

    9.进程和线程的区别(猎豹) 简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高. 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内 ...

  6. android java 调用js,Android中Java和JavaScript交互实例

    Android提供了一个很强大的WebView控件用来处理Web网页,而在网页中,JavaScript又是一个很举足轻重的脚本.本文将介绍如何实现Java代码和Javascript代码的相互调用. 如 ...

  7. java图像识别库_CognitiveJ一个Java的人脸图像识别开源分析库

    CognitiveJ 是一个开源的,支持 Java 8 API 的库,用于管理和编排 Java 应用和微软的Cognitive(Project Oxford)机器学习和图像处理库的项目,可以让你查询以 ...

  8. android java.lang.illegalstateexception,Android异常 java.lang.IllegalStateException解决方法

    Android异常详情介绍 这种异常我遇到以下两种情况: 1. java.lang.IllegalStateException: No wrapped connection. 2.java.lang. ...

  9. 苏大JAVA题库_苏州大学Java程序设计课程试卷含答案(B)

    苏州大学Java程序设计课程试卷(B)卷及参考答案共6页 一.选择题(2分*25= 50分) 1.Java语言的最大优点是:它是一种( C )的程序设计语言. A) 安全性 B) 多线性 C) 跨平台 ...

  10. 大学生java考试题库6_《JAVA程序设计》期末考试试题_(六)

    <JAVA程序设计>期末考试试题 (六) 一.填空题 1.定义类的保留字是( class ),定义接口的保留字是( interface ). 2.Socket通常也称为 ( 套接字 ),用 ...

最新文章

  1. 第三次学JAVA再学不好就吃翔(part78)--List类
  2. 深入理解Python中的元类(metaclass)
  3. sqlserver 中事务与错误机制的处理
  4. mysql binlog使用_mysql binlog 基本使用
  5. mysql 5.6.32 linux_centos7 下手动安装MySQL-5.6.32-1.linux_glibc2.5.x86_64.rpm-bundle
  6. python anaconda安装redis_Linux下安装python,redis
  7. 如何从JQuery中的each()函数中断/退出? [重复]
  8. (zz)最大子序列和问题
  9. 尚硅谷Java入门视频教程第五章——面向对象编程(中)
  10. 身为一个程序员该怎么去判断一个工作的好坏?
  11. 《横向领导力》-简述
  12. 解决ZeroDivisionError: integer division or modulo by zero问题
  13. Keil(MDK)下用仿真器烧程序的同时烧写附加数据到SPI FLASH
  14. 微信-软件 报警信息
  15. 树莓派系列(一)-——————树莓派usb串口的使用
  16. 微软正打造新一代 Windows 操作系统
  17. android开机动画不播放,android 设置activity启动退出动画 | 解决设置activity 动画不生效问题...
  18. 从菜鸟到架构师(一)
  19. grafana登录失败无法从cookie中获取用户信息
  20. shell脚本触发企业微信群机器人

热门文章

  1. 移动魔百和M302A-ZN-S905L2_蓝牙语音正常_线刷免费固件包
  2. python 构建和解析邮件
  3. 如何判断 Oracle RAC 中的 Master 主节点
  4. 域名备案、公安网备案
  5. 文件或目录损坏且无法读取
  6. 计算机无线网络怎么连接打印机共享打印机,电脑如何连接无线打印机?网络打印机连接方法!,又快又好...
  7. 苹果电脑表格取消自动计算机,苹果电脑excel序列被隐藏怎么办
  8. 如何在图片上加水印?图片添加、去除水印方法
  9. PPT里面如何插入斜体文字
  10. goap git上的v sploreg/goap