无法在Python中验证TronLink/TronWeb.js签名的消息



我正在使用TronLink/TronWeb.js对消息进行签名,但无法在Python 中进行验证

我正在使用的Python库https://github.com/iexbase/tron-api-python/

用于签名消息的Javascript代码:

const original_message = "557e3517549cf8ed47d8b205654ea2a7"
const signedtxn = await tronWeb.trx.sign(original_message);
// result 0x862e16c28684bed7162e9a1dd34962882d887610de6c775054ffbad989baec65707b2ba898366c02e9f20730bc2daf54bb7e6d33d77c64f8930f8c9365f5993a1b

用于验证签名消息的Python代码

from tronapi import Tron
from hexbytes import HexBytes
tron = Tron()
class signed_message:
# signedtxn variable in javascript
signature = HexBytes('0x862e16c28684bed7162e9a1dd34962882d887610de6c775054ffbad989baec65707b2ba898366c02e9f20730bc2daf54bb7e6d33d77c64f8930f8c9365f5993a1b')
original_message = "557e3517549cf8ed47d8b205654ea2a7"
address = "<!-- Tron Base58 Address in TronLink/TronWeb -->"
tron.trx.verify_message(original_message, signed_message, address=address)

我在python 中得到这个错误

ValueError: Signature does not match

我可以在TronWeb.js中验证消息,但不能在Python 中验证

您可以使用tronpy(是的,我是tronpy的作者。(

PublicKey.verify_msg

签名的最后一个字节应该是0x010x00,这与ETH不同。

最新更新