当前位置: 首页 > news >正文

php实现助记词转TRX,ETH 私钥和钱包地址

TRX助记词转地址网上都是Java,js或其他语言开发的示例,一个简单的功能需要依赖其他环境来实现表示不能忍,毕竟php是世界上最好的语言。【狗头】

一、知识准备

要实现助记词转TRX私钥和地址,先需要知道助记词和私钥钱包地址之间的关系。

大概意思是,在数字货币里,所有的交易都是由私钥签名来确认身份的,但是私钥没有规律,不利于记忆,于是就引入了一些便于记忆的词组(助记词),助记词由私钥根据一些规范转换而来,这些规范实现了助记词和私钥之间相互转换。

php实现助记词转TRX,ETH 私钥和钱包地址
创建钱包说明

二、TRX助记词转私钥和地址思路(其他链也是一个思路)

首先有网友写了php 创建BTC、LTC、ETH助记词、私钥和地址 使用示例(转)的方法,我们可以根据这个思路,将助记词转成TRX私钥。

php实现助记词转TRX,ETH 私钥和钱包地址
创建助记词并生成BTC私钥
php实现助记词转TRX,ETH 私钥和钱包地址
创建助记词并生成ETH私钥、地址
php实现助记词转TRX,ETH 私钥和钱包地址
创建助记词并生成LTC私钥、地址

通过上面三个案例,我们发现助记词在转不同的链时私钥时,只是需要调用不同的BIP44选项即可。所以理论上,我们所有符合BIP44规范的链,都可以按本方法将助记词转成私钥。

BIP44规范不同链对应编码:Registered coin types for BIP-0044

转钱包地址则是利用不同链自己的生成规则,将私钥转成公钥,公钥再生成地址。所以要实现转地址,只需要去找到不同链的开发包即可。

私钥和公钥及地址的关系私钥和公钥及地址的关系

三、实现方法

trx我这边用的这个包

composer require fenguoz/tron-php
php实现助记词转TRX,ETH 私钥和钱包地址
    //const URI = 'https://api.shasta.trongrid.io'; // shasta testnetconst URI = 'https://api.trongrid.io'; // mainnetconst TRON_PRO_API_KEY = 'xxxxxxxxxx'; // mainnetconst CONTRACT = ['contract_address' => 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t', // USDT TRC20'decimals' => 6,];private $trx;private $trx20;/*** @throws TronErrorException*/private function getTRX(): TRX{if ($this->trx==null){$api = new Api(new Client(['base_uri' => self::URI,'headers'=>['TRON-PRO-API-KEY'=>self::TRON_PRO_API_KEY]]));$this->trx = new Trx($api);}return $this->trx;}/*** 私钥转地址* @throws TronErrorException*/public function privateKeyToAddress($privateKey): TronAddress{return $this->getTRX()->privateKeyToAddress($privateKey);}/*** @throws TronErrorException* @throws Exception* trc 助记词转地址*/public function trxMnemonicToAddress($mnemonic): TronAddress{$seedGenerator = new Bip39SeedGenerator();// 通过助记词生成种子,传入可选加密串'hello'$seed = $seedGenerator->getSeed($mnemonic);$hdFactory = new HierarchicalKeyFactory();$master = $hdFactory->fromEntropy($seed);$hardened = $master->derivePath("44'/195'/0'/0/0");$pri = $hardened->getPrivateKey()->getHex();return $this->privateKeyToAddress($pri);}

开发调试时,可以用这个网站测试对比生成结果:Mnemonic Code Converter

4、温馨提示

助记词和私钥都是非常重要的敏感数据,一旦泄露可能造成非常严重测财产损失,请谨慎操作使用。

5、参考资料

  1. Bit-Wasp/bitcoin-php 的简单使用:创建钱包 + 进行交易
  2. php 创建BTC、LTC、ETH助记词、私钥和地址 使用示例
  3. Mnemonic Code Converter
  4. 理解开发HD 钱包涉及的 BIP32、BIP44、BIP39

排名不分先后,仅以浏览器关闭顺序为依据。【笑哭】

http://www.lryc.cn/news/44277.html

相关文章:

  • 浅析可观测系统中sdk的不同引入方式的利与弊
  • Google Earth导入经纬高(txt文件)
  • Unity客户端开发工程师的进阶之路
  • 2023年全国最新高校辅导员精选真题及答案34
  • chatGPT身份指令
  • 基于springboot实现私人健身与教练预约管理系统【源码+论文】分享
  • 网络技术领域术语大全,含中英文及缩写,强烈建议收藏!
  • C++源码剖析——vector和array
  • 学习linux编程(一)
  • pt-query-digest_详细使用方法
  • 基于MATLAB编程的萤火虫FA优化BP神经网络的回归分析
  • leetcode 消失的数字(面试题)
  • Spring入门篇6 --- AOP
  • linux 配置java环境
  • 分布式事务基础入门
  • 白盒测试究竟怎么做
  • EEG微状态的功能意义
  • Python3 - Flask+swift实现单点登录
  • HTML URL
  • 带你了解ICCV、ECCV、CVPR三大国际会议
  • 常用的一些代码
  • Python-df.pop()和np.array.shape()属性
  • 多线程并发编程笔记03(小滴课堂)---线程安全性
  • 提升代码质量,使用插件对 java 代码进行扫描检查分析
  • 如何用秒验提升用户体验和转换率?
  • 【新】(2023Q2模拟题JAVA)华为OD机试 - 机器人活动区域
  • 2023软件测试面试真题宝典大汇总,没收藏的都后悔了
  • 十、MyBatis的逆向工程
  • 网站是怎么屏蔽脏话的呢:简单学会SpringBoot项目敏感词、违规词过滤方案
  • kafka经典面试题