php实现助记词转TRX,ETH 私钥和钱包地址
TRX助记词转地址网上都是Java,js或其他语言开发的示例,一个简单的功能需要依赖其他环境来实现表示不能忍,毕竟php是世界上最好的语言。【狗头】
一、知识准备
要实现助记词转TRX私钥和地址,先需要知道助记词和私钥钱包地址之间的关系。
大概意思是,在数字货币里,所有的交易都是由私钥签名来确认身份的,但是私钥没有规律,不利于记忆,于是就引入了一些便于记忆的词组(助记词),助记词由私钥根据一些规范转换而来,这些规范实现了助记词和私钥之间相互转换。
二、TRX助记词转私钥和地址思路(其他链也是一个思路)
首先有网友写了php 创建BTC、LTC、ETH助记词、私钥和地址 使用示例(转)的方法,我们可以根据这个思路,将助记词转成TRX私钥。
通过上面三个案例,我们发现助记词在转不同的链时私钥时,只是需要调用不同的BIP44选项即可。所以理论上,我们所有符合BIP44规范的链,都可以按本方法将助记词转成私钥。
BIP44规范不同链对应编码:Registered coin types for BIP-0044
转钱包地址则是利用不同链自己的生成规则,将私钥转成公钥,公钥再生成地址。所以要实现转地址,只需要去找到不同链的开发包即可。
三、实现方法
trx我这边用的这个包
composer require fenguoz/tron-php
//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、参考资料
- Bit-Wasp/bitcoin-php 的简单使用:创建钱包 + 进行交易
- php 创建BTC、LTC、ETH助记词、私钥和地址 使用示例
- Mnemonic Code Converter
- 理解开发HD 钱包涉及的 BIP32、BIP44、BIP39
排名不分先后,仅以浏览器关闭顺序为依据。【笑哭】
php实现助记词转TRX,ETH 私钥和钱包地址相关推荐
- PHP生成助记词和BTC、ETH、LTC地址
本文作者:陈进坚 个人博客:https://jian1098.github.io CSDN博客:https://blog.csdn.net/c_jian 简书:https://www.jianshu. ...
- 以太坊---「地址、密码、私钥、助记词、Keystore 」那些事
想知道更多关于区块链技术知识,请百度[链客区块链技术问答社区] 链客,有问必答!! 国内最好的以太系钱包当属 imToken,在使用钱包时,有几个名词必须深刻理解,不然就有可能造成区块链资产的损失,这 ...
- CoinU基本概念分享(什么是去中心化钱包、助记词丢失怎么办等)
1.CoinU钱包如何"去中心化"? · CoinU钱包是一款去中心化的HD钱包,你的钱包助记词完全由你自己保管.你的所有资产都被存放在区块链网络中.CoinU钱包将不会对你的资产 ...
- java助记词反向_GitHub - gangan1345/mnemonic-sdk: Mnemonic bip39 bip32 bip44 生成助记词 私钥...
mnemonic-sdk Mnemonic bip39 bip32 bip44 支持 BIP39 助记词 支持 BIP32 子私钥 支持 BIP44 多币种管理 Install Gradle: Add ...
- (一)区块链钱包之生成助记词
(一)区块链钱包之生成助记词 (二)区块链钱包之创建钱包地址 (三)区块链钱包之加密算法简介 (四)区块链钱包之创建比特离线交易(BTC交易) (五)区块链钱包之创建以太坊交易(ETH交易) 助记词 ...
- 非对称加密, 助记词, PIN, WIF
一钱包 1.1非对称加密, 助记词, PIN, WIF, 地址 1.1.1 非对称加密算法 非对称加密算法, 加密与解密使用不同的KEY, 我们分别称为私钥与公钥,其中可以通过私钥生成公钥 在比特币中 ...
- 私钥,公钥,钱包地址,助记词,keyStore的区别
私钥,公钥,钱包地址,助记词,keyStore的区别 私钥:本质上是一个包含64位的随机数,是随机生成的 公钥:公钥是由私钥经过加密算法后生成的,拥有私钥,可以算出公钥,拥有公钥却不能算出私钥 钱包地 ...
- 钱包原理——助记词与公私钥
目前钱包分为两种: 一种是非确定性(随机)的钱包,就是随机生成多个私钥,钱包管理这些私钥.如果需要成千上万的地址,通过随机的方式来生成私钥,这就需要存储那么多无规律的私钥,这样就很麻烦不好管理. 另一 ...
- 简单科普私钥、地址、助记词、Keystore的区别
简单科普私钥.地址.助记词.Keystore的区别 苏江同学 关注 2017.10.31 21:03* 字数 1589 阅读 13437评论 10喜欢 18赞赏 3 很多人保管不好自己的虚拟财产,发 ...
最新文章
- 语义分割领域开山之作:Google提出用神经网络搜索实现语义分割
- java研发自测报告_开发自测方法探讨
- css如何各种中文字体如雅黑、黑体、宋体、楷体等等
- 模板方法源码解析(jdk+servlet+mybatis)
- Exchange 2010 迁移至Exchange 2013系列之六:创建信任关系并安装ADMT Server
- 对于区块链在现实落地的一些技术业务关注点
- Win7如何修改开机动画
- mysql字段前拼接字符串_Mysql之字段字符串拼接
- DXGI高帧率屏幕录像软件源码解析(声音捕获,抓屏,ffmpeg录像,MP4录像,flv录像,麦克风采集)(第1篇API展示及使用部分)
- java毕业设计小区停车场管理系统(附源码、数据库)
- java 提示语法错误_java常见语法错误
- c语言三位数中有多少素数,输出所以三位数的素数,并求素数的个数,每行输出10个数...
- 图解图论介绍及应用(1):哥尼斯堡七桥
- c++学习——(6)数组对象与对象成员
- 微信和抖音都到十亿级用户了,作为产品经理的你们觉得哪个产品更成功?
- Pandas基本教程
- Oculus联合创始人Palmer Luckey:我不认为Facebook是VR的未来
- Microbiome杂志和主编简介
- 用Qt实现计算器(实现了运算符优先级)
- Cross-Modality Contrastive Learning for Hyperspectral Image Classification