mnemonic-sdk

Mnemonic bip39 bip32 bip44

支持 BIP39 助记词

支持 BIP32 子私钥

支持 BIP44 多币种管理

Install

Gradle:

Add dependency:

dependencies {

implementation 'com.lgann.develop:mnemonic-sdk:1.0.0'

}

Maven:

com.lgann.develop

mnemonic-sdk

1.0.0

pom

Usage

生成助记词

// 默认生成12个单词的助记词

String mnemonic = MnemonicUtils.generateMnemonic();

System.out.println("mnemonic = " + mnemonic);

助记词:exchange throw faculty fiction require father prefer mask organ crumble journey cricket

生成种子

// 根据助记词生成种子

byte[] seed = MnemonicUtils.generateSeed(mnemonic, "");

System.out.println("seed = " + Numeric.toHexString(seed));

种子: 0x7eaedb7137ef3c3b9da8c2bd976d639455133ef76be73fda9c8342c922c98ca910fe195a5db88c43fa526b3504569f6aa7476d738a6e11f8feb48aa03ae0eac0

生成一个bip32 私钥

byte[] privateKeyBytes = KeyPairUtils.generatePrivateKey(seed, KeyPairUtils.CoinTypes.EOS);

System.out.println("privateKeyBytes:"+ Numeric.toHexString(privateKeyBytes));

私钥:0x05b04396cf928446dd14be3d58cad3f64ff7b61730462e14a0722caaaf6a1d49

generatePrivateKey具体实现如下

说明:生成的助记词 通过bip32 bip44 转换生成的私钥 可以让同一个 seed 可以支援多币种、多帐户等

// "m/44'/60'/0'/0/0"

// 1. we just need eth wallet for now

AddressIndex addressIndex = BIP44

.m()

.purpose44()

.coinType(coinType)

.account(0)

.external()

.address(0);

// 2. calculate seed from mnemonics , then get master/root key ;

// Note that the bip39 passphrase we set "" for common

ExtendedPrivateKey rootKey = ExtendedPrivateKey.fromSeed(seed, network);

// 3. get child private key deriving from master/root key

ExtendedPrivateKey childPrivateKey = rootKey.derive(addressIndex, AddressIndex.DERIVATION);

// 4. get key pair

byte[] privateKeyBytes = childPrivateKey.getKey();

如果是ETH钱包开发的话导入了web3j的库 ,可使用ECKeyPair 生成私钥和公钥。

ETH、EOS等账户体系会有所不同,生成私钥和公钥有所区别

// 生成私钥和公钥

ECKeyPair keyPair = ECKeyPair.create(privateKeyBytes);

说明

BIP32:定义 Hierarchical Deterministic wallet (简称 “HD Wallet”),是一个系统可以从单一个 seed 产生一树状结构储存多组 keypairs(私钥和公钥)。好处是可以方便的备份、转移到其他相容装置(因为都只需要 seed),以及分层的权限控制等。

BIP39:将 seed 用方便记忆和书写的单字表示。一般由 12 个单字组成,称为 mnemonic code(phrase),中文称为助记词或助记码。

BIP44:基于 BIP32 的系统,赋予树状结构中的各层特殊的意义。让同一个 seed 可以支援多币种、多帐户等。各层定义如下:

m / purpose' / coin_type' / account' / change / address_index

//purporse': 固定值44', 代表是BIP44

//coin_type': 这个代表的是币种, 可以兼容很多种币, 比如BTC是0', ETH是60'

//btc一般是 m/44'/0'/0'/0

//eth一般是 m/44'/60'/0'/0

java助记词反向_GitHub - gangan1345/mnemonic-sdk: Mnemonic bip39 bip32 bip44 生成助记词 私钥...相关推荐

  1. 基于Java的Android区块链开发之生成助记词(位数可选)

    基于Java的Android区块链开发之生成助记词 位数可选 具体实现代码 这里使用bitcoinj库,来实现生成bip39的12个助记词,引用库 implementation 'org.bitcoi ...

  2. java助记词_JAVA生成BTC地址以及私钥,公钥和助记词

    JAVA生成BTC地址以及私钥,公钥和助记词 有用的话,回来给我点个赞,谢谢了.有问题留言,我会尽快回复. maven依赖 org.bitcoinj bitcoinj-core 0.14.7 上代码 ...

  3. PHP生成助记词和BTC、ETH、LTC地址

    本文作者:陈进坚 个人博客:https://jian1098.github.io CSDN博客:https://blog.csdn.net/c_jian 简书:https://www.jianshu. ...

  4. bip39:使用bip39生成助记词

    助记词 从HD钱包的创建方式可知,要创建一个HD钱包,我们必须首先有一个确定的512bit(64字节)的随机数种子. 如果用电脑生成一个64字节的随机数作为种子当然是可以的,但是恐怕谁也记不住. 如果 ...

  5. vue+vite项目当中:介绍一种生成助记词新方法,兼容以太坊

    在上一篇文章 当中我介绍了使用bip39生成助记词,在vue3不同的框架vite.vue-cli当中引入配置的方法.虽然可以生成助记词但是,需要进行大量的配置,尤其是在vite+ES6+vue3项目当 ...

  6. Android(以太坊)生成助记词

    Android(以太坊)生成助记词 之前都是看别人的文章,很少自己写,有时即使是自己摸索出的解决方案(无法直接搜到)的也没有记录下来, 说白了其实就是懒. 先从小的写起,一点一点把还没忘记的记录一下吧 ...

  7. (一)区块链钱包之生成助记词

    (一)区块链钱包之生成助记词 (二)区块链钱包之创建钱包地址 (三)区块链钱包之加密算法简介 (四)区块链钱包之创建比特离线交易(BTC交易) (五)区块链钱包之创建以太坊交易(ETH交易) 助记词 ...

  8. Java正则表达式中的反向引用

    Java正则表达式中的反向引用是Java提供的另一个重要功能. 要了解反向引用 ,我们首先需要了解群组 . 正则表达式中的分组意味着将多个字符视为一个单元. 通过将要分组的字符放在一组括号" ...

  9. vue生成助记码全部教程

    前端vue 使用js生成助记码 开发页面用的是vue框架,需要根据键盘输入事件生称助记码,网上看了好多,都不适合我(可能我没找对地方)就自己参考着改了一版出来,下面说说思路: 1.首先要先监听键盘输入 ...

最新文章

  1. debian 10 ssh简单配置
  2. Bootstrap select 多选并获取选中的值
  3. AI之最——地平线创始人兼CEO余凯谈AI
  4. 对象的引用和clone
  5. python求向量函数的雅可比矩阵_在python Numpy中求向量和矩阵的范数实例
  6. 基于SSM的餐饮工业化管理系统-计算机毕业设计
  7. PostgreSQL消息乱码的解决
  8. SQLServer 条件查询语句大全
  9. 广西二级c语言试题,广西区计算机等级考二级C语言笔试试题及答案.doc
  10. 搭建Vue2.0脚手架(vue-cli)
  11. 常用JS验证函数总结
  12. C++中的万能头文件
  13. Thinkpad SL400 功能键介绍
  14. Java根据信用卡号区分国际常用的五大信用卡卡种:VISA,Master,AE,DC,JCB.
  15. spring boot整合prometheus
  16. ffmpeg 连接抖音三个视频,做电脑桌面
  17. S7-200SMART PLC中书签和交叉引用的具体使用方法示例
  18. 没有图片显示默认图片
  19. 刷脸支付设备深度融合多项赋能
  20. 东南大学银行账号信息

热门文章

  1. python网络爬虫教程(四):强大便捷的请求库requests详解与编程实战
  2. h5开发必备之切图工具cutterman
  3. collapse 微信小程序_微信小程序之有赞组件Collapse折叠面板的使用
  4. Layui table数据重载实现
  5. 简单的使用QueryList爬取数据
  6. 新版jdk安装,配置,测试详解
  7. 跑前端vue项目流程
  8. macos可以升级到指定版本吗_macOS版本大升级,值得你关注的几项细节
  9. can not load key value key was removed or redis-server went away 关于spring 整合redis 以及保存到redis
  10. java调flash注册方法_FlEX FLASH对象注册点调整方法