使用Python计算TRC20地址

 更新时间:2025年02月06日 10:18:42   作者:喵个咪  
这篇文章主要为大家详细介绍了如何使用Python实现计算TRC20地址,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下

TRC20地址介绍

TRC20地址是一种数字钱包地址,用于接收或发送Tether加密货币。每个TRC20地址由一组26到64个字符组成,通常以0x开头,后面跟着一系列大写字母和数字。如果您想要使用TRC20地址进行交易,您需要将其提供给数字货币交易所或其他交易平台,并按照指示操作即可。

Python计算TRC20地址

完整代码

import hashlib
from eth_utils import keccak
import base58
import ecdsa
from tronpy.keys import PrivateKey


def test1():
    # 示例私钥,可替换为你自己的私钥
    private_key_hex = "your_private_key_hex_string"

    # 将十六进制私钥转换为字节形式
    private_key_bytes = bytes.fromhex(private_key_hex)

    # 使用 SECP256k1 曲线生成私钥对象
    sk = ecdsa.SigningKey.from_string(private_key_bytes, curve=ecdsa.SECP256k1)

    # 从私钥派生公钥
    vk = sk.get_verifying_key()
    public_key_bytes = vk.to_string()
    public_key_point = vk.pubkey.point

    # Hash the public key using Keccak-256
    public_key_hash = keccak(public_key_bytes)

    # Take the last 20 bytes of the hash and prepend 0x41
    # 添加 TRON 地址前缀 (0x41)
    tron_prefix = b'\x41'
    prefixed_hash160 = tron_prefix + public_key_hash[-20:]

    # 对添加前缀后的结果进行两次 SHA-256 哈希以获取校验和
    first_sha256 = hashlib.sha256(prefixed_hash160).digest()
    second_sha256 = hashlib.sha256(first_sha256).digest()

    # 取前 4 字节作为校验和
    checksum = second_sha256[:4]

    # 将前缀、哈希结果和校验和拼接
    full_payload = prefixed_hash160 + checksum

    # Convert to hexadecimal string
    trc_address_hex = prefixed_hash160.hex()

    # 使用 Base58 编码生成最终的 TRC 地址
    trc_address = base58.b58encode(full_payload).decode()

    # 打印私钥(以十六进制字符串形式)
    print("私钥 (十六进制):", sk.to_string().hex())
    # 打印公钥(以十六进制字符串形式)
    print("公钥 (十六进制):", vk.to_string().hex())
    # 打印公钥对应的椭圆曲线上的点
    print("公钥对应的椭圆曲线上的点:")
    print("  x 坐标 (十六进制):", hex(public_key_point.x()))
    print("  y 坐标 (十六进制):", hex(public_key_point.y()))
    print("Keccak-256哈希:", public_key_hash.hex())
    print("校验和:", checksum.hex())
    print("完整地址数据:", full_payload.hex())
    print("TRC 地址数据:", trc_address_hex)
    print("TRC 地址:", trc_address)
    print('\n')


def test2():
    # 指定私钥(请替换为你实际的私钥)
    private_key_hex = "your_private_key_hex_string"

    # 将十六进制私钥转换为PrivateKey对象
    private_key = PrivateKey(bytes.fromhex(private_key_hex))

    # 从私钥派生公钥
    public_key = private_key.public_key

    # 从公钥生成TRC地址
    address = public_key.to_base58check_address()

    print("指定的私钥 (十六进制):", private_key_hex)
    print("公钥 (十六进制):", public_key.hex())
    print("TRC地址:", address)
    print('\n')


test1()
test2()

到此这篇关于使用Python计算TRC20地址的文章就介绍到这了,更多相关Python计算TRC20地址内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Pytorch中torch.cat()函数举例解析

    Pytorch中torch.cat()函数举例解析

    一般torch.cat()是为了把多个tensor进行拼接而存在的,下面这篇文章主要给大家介绍了关于Pytorch中torch.cat()函数举例解析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • python selenium在打开的浏览器中动态调整User Agent

    python selenium在打开的浏览器中动态调整User Agent

    这篇文章主要介绍的是python selenium在打开的浏览器中动态调整User Agent,具体相关资料请需要的朋友参考下面文章详细内容,希望对你有所帮助
    2022-02-02
  • Python中values()函数用法简单示例

    Python中values()函数用法简单示例

    这篇文章主要给大家介绍了关于Python中values()函数用法的相关资料,python内置的values()函数返回一个字典中所有的值,文中给出了代码示例,需要的朋友可以参考下
    2023-09-09
  • Pandas DataFrame中的tuple元素遍历的实现

    Pandas DataFrame中的tuple元素遍历的实现

    这篇文章主要介绍了Pandas DataFrame中的tuple元素遍历的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • python求解三角形第三边长实例

    python求解三角形第三边长实例

    这篇文章主要介绍了python求解三角形第三边长实例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Python使用SymPy解决Manim曲线绘制速度不均的问题

    Python使用SymPy解决Manim曲线绘制速度不均的问题

    这段文章详细讲解了使用SymPy进行弧长参数化以实现参数曲线均匀绘制的技术,通过计算弧长函数、反解参数值及数值求解,实现曲线绘制节奏均匀,提升视觉体验,关键代码示例及效果展示进一步说明了方法的有效性,需要的朋友可以参考下
    2026-06-06
  • 使用torchtext导入NLP数据集的操作

    使用torchtext导入NLP数据集的操作

    这篇文章主要介绍了使用torchtext导入NLP数据集的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • python目录与文件名操作例子

    python目录与文件名操作例子

    这篇文章主要介绍了python目录与文件名操作例子,需要的朋友可以参考下
    2016-08-08
  • 解决Keras 自定义层时遇到版本的问题

    解决Keras 自定义层时遇到版本的问题

    这篇文章主要介绍了解决Keras 自定义层时遇到版本的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • Pytorch dataloader在加载最后一个batch时卡死的解决

    Pytorch dataloader在加载最后一个batch时卡死的解决

    这篇文章主要介绍了Pytorch dataloader在加载最后一个batch时卡死的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05

最新评论