java 根据助记词导入ETH钱包账户

以太坊java版本demo及以太坊白皮书 以太坊java版本demo及以太坊白皮书 以太坊java版本demo及以太坊白皮书 立即下载

前面我们离线生成了ETH的账户,这是一种账户生成办法,另外一种就是用户提供助记词,我们通过助记词生成一个钱包。其实这和创建钱包是同一套流程

原来创建是:seed种子(随机生成助记词)--->私钥--->公钥

那导入就是:seed种子(用户提供)--->私钥--->公钥

我们看代码

	/**
     * 通过助记词導入錢包
     *
     * @param path     助记词路径  用户提供使用什么协议生成
     * @param list     助记词
     * @param password 密码
     * @return
     */
public void importByMnemonic(String path,List<String> mnemonics,String password) {
		//协议跟路径这个是有规定的,这里也要校验一下
		if (!path.startsWith("m") && !path.startsWith("M")) {
            //throw new RuntimeException("请输入正确路径啦~~~~");
        }
		//TODO 密码长度这边校验一下  一般大于8就可以了  还有助记词校验
		String[] pathArray =path.split("/");
		long creationTimeSeconds = System.currentTimeMillis() / 1000;
		//主要就是这里会有不同,原来是随机生成,这次我们替换成用户助记词构建
		DeterministicSeed ds = new DeterministicSeed(mnemonics, 128, "", creationTimeSeconds);
        //根私钥
        byte[] seedBytes = ds.getSeedBytes();
        //助记词
        List<String> mnemonic = ds.getMnemonicCode();
        try {
            //助记词种子
            byte[] mnemonicSeedBytes = MnemonicCode.INSTANCE.toEntropy(mnemonic);
            ECKeyPair mnemonicKeyPair = ECKeyPair.create(mnemonicSeedBytes);
            WalletFile walletFile = Wallet.createLight(password, mnemonicKeyPair);
            ObjectMapper objectMapper = ObjectMapperFactory.getObjectMapper();
            //存这个keystore 用完后删除
            String jsonStr = objectMapper.writeValueAsString(walletFile);
            //验证
            WalletFile checkWalletFile = objectMapper.readValue(jsonStr, WalletFile.class);
            ECKeyPair ecKeyPair = Wallet.decrypt(password, checkWalletFile);
            byte[] checkMnemonicSeedBytes = Numeric.hexStringToByteArray(ecKeyPair.getPrivateKey().toString(16));
            List<String> checkMnemonic = MnemonicCode.INSTANCE.toMnemonic(checkMnemonicSeedBytes);
        } catch (MnemonicException.MnemonicLengthException | MnemonicException.MnemonicWordException | MnemonicException.MnemonicChecksumException | CipherException | IOException e) {
            logger.error("账号生成異常了!!!{}", e);
        }
        if (seedBytes == null) return;
        DeterministicKey dkKey = HDKeyDerivation.createMasterPrivateKey(seedBytes);
        for (int i = 1; i < pathArray.length; i++) {
            ChildNumber childNumber;
            if (pathArray[i].endsWith("'")) {
                int number = Integer.parseInt(pathArray[i].substring(0,
                        pathArray[i].length() - 1));
                childNumber = new ChildNumber(number, true);
            } else {
                int number = Integer.parseInt(pathArray[i]);
                childNumber = new ChildNumber(number, false);
            }
            dkKey = HDKeyDerivation.deriveChildKey(dkKey, childNumber);
        }
        ECKeyPair keyPair = ECKeyPair.create(dkKey.getPrivKeyBytes());
        EthWalletModel ethHDWallet = null;
        try {
            WalletFile walletFile = Wallet.createLight(password, keyPair);
            ObjectMapper objectMapper = ObjectMapperFactory.getObjectMapper();
            //keystore
            String jsonStr = objectMapper.writeValueAsString(walletFile);
			//私钥
			String privateKey=keyPair.getPrivateKey().toString(16);
			//公钥
			String publicKey=keyPair.getPublicKey().toString(16);
			//根地址
			String rpath = dkKey.getPathAsString();
			//地址
			String address="0x" + walletFile.getAddress();
        } catch (CipherException | JsonProcessingException e) {
            logger.error("創建账户異常了!!!{}", e);
        }
    }

好啦 ,大部分方法都是一样的,就是构建种子那里会有不同。基于java的oop,我们可以把公共方法抽取出来,这里就不演示啦~

java RPC调用钱包 包含btc,eth,erc20,usdt,dash4种类型钱包的接入,java-RPC 立即下载

相关推荐

java web3j 助记词生成地址 直连以太坊节点 查余额 硬破解

该工程支持java web3j直连以太坊节点(自建或使用免费节点) 支持助记词遍历(该遍历根据助记词生成规则进行了部分反推判断,可将单词组4.8亿种情况缩短至0.3亿种,缩短16倍) 根据助记词生成地址,并直接与以太坊节点交互查询余额,并进行记录 相当于直接运行硬破解

以太坊---「地址、密码、私钥、助记词、Keystore 」那些事

想知道更多关于区块链技术知识,请百度【链客区块链技术问答社区】 链客,有问必答!! 国内最好的以太系钱包当属 imToken,在使用钱包时,有几个名词必须深刻理解,不然就有可能造成区块链资产的损失,这几个名词为地址、密码、私钥、助记词、keystore。若以银行账户为类比,这 5 个词分别对应内容如下:地址=银行卡号密码=银行卡密码私...

weixin_33885676的博客 6637

手把手教你用UNet实现轨道缺陷检测(附RSDDs数据集下载与完整代码)

本文详细介绍了如何使用UNet模型实现轨道缺陷检测,包括RSDDs数据集的下载与处理、UNet架构的改进与优化、训练策略设计以及模型部署的全流程。通过实战案例,展示了如何利用深度学习技术提升工业质检效率,特别适合从事工业缺陷检测和图像处理的开发者参考。

dapp9builder的博客 749

手把手教你使用Java生成助记词、私钥、地址|Java区块链钱包生成助记词、地址

手把手教你使用Java生成助记词、私钥、地址|Java区块链钱包生成助记词、地址

BUG设计师 5395

InSAR_ISCE软件数据处理流程之:利用哨兵数据获取2015年尼泊尔地震同震形变场

ISCE软件数据处理流程之:利用哨兵数据获取2015年尼泊尔地震同震形变场 ISCE软件做干涉只需要将数据准备好,并配置好insarApp.xml文件即可进行。 一、数据准备 1、SAR数据获取 本利中使用的数据为欧空局提供的sentinel-1A/B数据,可从阿拉斯加数据服务器上下载,具体下载方法可参考: 哨兵数据下载方法. 2、哨兵卫星轨道文件下载 哨兵数据处理除了需要SAR影像外,还需提供轨道参数文件,可从https://qc.sentinel1.eo.esa.int/aux_poeorb/下载。下载

weixin_42128764的博客 1万+

Context Capture10.20 安装教程(附安装包)

ContextCapture 是一款由Bentley公司推出的实景建模软件,可以快速为各种类型的基础设施项目生成最具挑战性的反应现实环境的三维模型。

一起来交流学习吧 2万+

java助记词,[币严BIZZAN区块链]Java生成ETH钱包助记词、私钥、地址

packagecom.bizzan.test;importjava.security.SecureRandom;importjava.util.List;importorg.bitcoinj.crypto.ChildNumber;importorg.bitcoinj.crypto.DeterministicHierarchy;importorg.bitcoinj.crypto.Determinis...

weixin_39855634的博客 1014

编译原理实验二:LL(1)分析法(附C/C++完整代码)

本文讲述了LL(1)文法的原理及如何用C语言实现。并在给出的代码中实现了消除文法的左递归,First集,Follow集,select集的输出,构造预测分析表并输出,和对任意输入字符串的分析。程序总流程为:从文件读取文法 -> 输出文法信息 -> 消除左递归并输出消除后的文法 -> 计算First集并输出 -> 计算Follow集并输出 ->计算select集并输出 -> 判断是否是LL(1)文法 -> 构造预测分析表并输出 ->手动输入要分析的字符串 -> 输出分析过程和结果读取文件。

W_Wmwmwm的博客 6192

ethers.js:wallet(创建钱包,导入助记词,导入私钥)

ethers.js(创建钱包,导入助记词,导入私钥)

sunluyi的博客 1346

记一次Nacos线程数飙升排查

Nacos线程飙升问题排查

叭嘣的博客 2631

linux 基于debian/ubuntu AB系统适配(二)-updateEngine移植

其实A/B系统的原理很简单,大部分的工作都集中在uboot上,rootfs只是起到一个辅助的作用,但这个作用也就必不可少的。你会发现在这个其中并没有kernel的参与。

badbayyj的博客 1033

使用Web3j(JAVA)开发ETH钱包-1

一、简介 想要使用web3j开发ETH钱包,我们需要把准备工作做好,那么先让我们来了解下什么是web3j:https://web3j.readthedocs.io/en/latest/,我这里是最新版本的地址,随着时间的变化,我们需要使用心得版本来编写我们的程序。 web3j是一个高度模块化,反应灵敏,类型安全的Java和Android库,用于处理智能合约并与以太坊网络上的客户端(节点)集成:这...

菜鸟 5963

YOLOv11改进 | Conv篇 | DWRSeg扩张式残差助力小目标检测 (附创新修改后的C3k2DWRSeg)

本文内容给大家带来的DWRSeg中的DWR模块来改进YOLOv11中的C2f和Bottleneck模块,主要针对的是小目标检测,主要创新点可以总结如下:多尺度特征提取机制的深入研究和创新的DWR模块和SIR模块的提出这种方法使得网络能够更灵活地适应不同尺度的特征,从而更准确地识别和分割图像中的物体。DWRSeg的基本原理和框架,并且能够在你自己的网络结构中进行添加DWRSeg需要增加一定的计算量一个DWR模块大概增加0.4GFLOPsYOLOv11改进系列专栏——本专栏持续复习各种顶会内容——科研必备。

Snu77的博客 4185

eth java_eth钱包开发--java(附带eth离线交易工具类)

本篇主要说明如何离线生成ETH地址和进行离线交易通过助记词离线生成钱包地址大致过程如下图:derivation.png由于在web3j库中没有加入助记词派生地址的解决方法,所以我们离线生成地址时需要引入bitcoinj库提供方法。以下为需要的钱包相关依赖:org.web3jcore4.0.3org.bitcoinjbitcoinj-core0.14.7进行离线交易原理:将交易的原始信息包括nonc...

weixin_36371924的博客 1255

电力负荷预测 | 电力系统负荷预测模型(Python线性回归、随机森林、支持向量机、BP神经网络、GRU、LSTM)

电力负荷预测 | 电力系统负荷预测模型(Python线性回归、随机森林、支持向量机、BP神经网络、GRU、LSTM)

天天酷科研的博客 3188

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

java基于web3j 玩转eth

1.查询ETH钱包余额: private static final String URL = “http://127.0.0.1:8545/”; Web3j web3 = Web3j.build(new HttpService(URL)); EthGetBalance ethGetBalance = null; try { // 通过账户地址查询余额 ethGetBalance = web3j ....

yzping10086的博客 4099

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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

mnemonic-sdkMnemonic bip39 bip32 bip44支持 BIP39 助记词支持 BIP32 子私钥支持 BIP44 多币种管理InstallGradle:Add dependency:dependencies {implementation 'com.lgann.develop:mnemonic-sdk:1.0.0'}Maven:com.lgann.developmnem...

weixin_33464176的博客 1154

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

(一)Java与以太坊(ETH)系列之创建账户(基于Ropsten测试网)

1.下载metamask钱包插件:

weixin_42582423的博客 4720

trident-java离线创建波场助记词账户

trident-java离线创建波场助记词账户

qq_45844443的博客 709

助记词与 BIP44 路径:token-core-android 密钥派生机制完全解读

在区块链钱包开发中,助记词(Mnemonic)与 BIP44 路径是决定"一套助记词能否安全、统一地管理多链资产"的核心。token-core-android 正是一个专注于 Android 平台、负责区块链私钥管理与交易签名的开源库,它借助一条助记词即可同时派生出 BTC、ETH、EOS 三种链的钱包与地址。本文将从零开始,为你完整拆解 token-core-android 中助记词的生成、校验

gitblog_00544的博客 360

助记词创建以太坊钱包源码_以太坊钱包开发 六-Coding:生成账户地址、私钥、keystore、...

原标题:以太坊钱包开发 六-Coding:生成账户地址、私钥、keystore、一、使用web3连接到以太坊网络(测试网、主网)1. 什么是web3web3是以太坊官方开提供的一个连接以太坊区块链的模块,允许您使用HTTP或IPC与本地或远程以太坊节点进行交互,它包含以太坊生态系统的几乎所有功能。web3模块主要连接以太坊暴露出来的RPC层。开发者利用web3连接RPC层,可以连接任何暴露了RPC...

weixin_39837139的博客 849

trident-java离线创建波场助记词的子账户

trident-java离线创建Bochang助记词的子账户

qq_45844443的博客 574

钱包导入导出完整指南:token-core-android 支持的 4 种方式与场景选择

如果你正在开发 Android 钱包应用,一定绕不开「钱包导入导出」这个核心功能。token-core-android 是 imToken 团队开源的区块链私钥管理库,它用一套统一 API 同时管理 BTC、ETH、EOS 三条链上的钱包,并提供助记词、Keystore、私钥等多种导入导出方式。本文用最直白的方式,帮你一次搞懂 token-core-android 支持的 4 种导入方式、对应导出

gitblog_00178的博客 155

分层确定性钱包 HD Wallet 钱包归集

分层确定性的概念早在 BIP32 提案提出。根据比特币核心开发者 Gregory Maxwell 的原始描述和讨论,Pieter Wuille 在2012 年 02月 11日整理完善提交 BIP32, 后续的BIP43 、 BIP34 、BIP44的规则使得 HD 钱包非常强大,用户只需要保存一个种子,就能控制所有币种,所有账户的钱包。具体可以查看(https://github.com/bitco...

EosToken的博客 2119

区块链钱包开发(Android篇)(1)

0.00000001聪(satoshi)(基本单位) 1 bitcoin (BTC) = 1000 millibitcoins (mBTC) = 1 million microbitcoins (uBTC) = 100 million Satoshi根据三个模块的组合,可以分为全服务钱包、只签名钱包(离线钱包和硬件钱包)、只分发钱包。Bitcoin Improvement ProposalsBIP32:定义了层级确定性钱包(hierarchical deterministic wallets),是一个系统可

2401_84009929的博客 709

ETH开发 JSONRPC

因为时间的原因,暂时没有对异常信息记性整理 package com.bib.wallet.utils; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.springframework.stereotype.Service; import java.io.IOEx...

weixin_43638275的博客 841
上一篇: bootstrap-Table sub父子表的使用
下一篇: Tomcat 性能调优之 JVM 调优
bubble21
博客等级 码龄9年 33粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值