简介

这是一个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 words                    List<String> words = Bip44Utils.generateMnemonicWords(MainActivity.this);                    Log.e("TAG", "words: " + words.toString());                    // get bip39 seed                    byte[] seed = Bip44Utils.getSeed(words);                    Log.e("TAG", "seed: " + new BigInteger(1,seed).toString(16));                    //get PrivateKey by path                    BigInteger 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
  party.loveit  bip44forandroidlibrary  1.0.7  pom
  1. Gradle
compile 'party.loveit:bip44forandroidlibrary:1.0.7'orimplementation 'party.loveit:bip44forandroidlibrary:1.0.7'
  1. Ivy
  

更多相关文章

  1. 【黑马Android】(19)response下载文件/验证码/防盗链/URL编码/jsp
  2. Android(安卓)获取assets绝对路径
  3. 【Android自动化打包】01. aapt的用法
  4. Android资源管理中的Runtime Resources Overlay-------之overlay
  5. android模拟器——Genymotion 如何安装APK
  6. Android(安卓)Studio 一些使用经验 - 传说之美
  7. Android(安卓)批量打包 基于Walle的多渠道快速打包自动脚本
  8. Android(安卓)屏蔽系统通知的几种方法
  9. Android(安卓)实现微信,QQ文件在其他应用打开并获取到路径

随机推荐

  1. [转]android Android(安卓)SDK Setup的使
  2. android注解初始化view
  3. 《Android/OPhone 开发完全讲义》已出版,
  4. Android(安卓)Launcher 分析
  5. Android中的Spinner的用法详解
  6. 解决TextView中MaxLines与ellipsize=end
  7. Android(安卓)UI自定义Spinner下拉框(用po
  8. Android禁止横屏竖屏切换
  9. 通过JavaScript或PHP检测Android设备的代
  10. Android禁止横屏竖屏切换