Python edcsa SECP256k1签名不正确

2024-06-03 07:21:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用https://github.com/warner/python-ecdsa库来创建私钥和公钥。在

我生成了钥匙

private key = 'ffbd2d76fde8d62642379e507f4ab69883e094708410392d8470246146195e56'
public key = '04' + '615a523e41d5984d5afc18e5adddddfa0ab8ac63b49933ff1b07fae90604fa6cdd6572996117b3ffce6e1258668c88fc2aad3c45eab31ef8a57b5176c91b272a'

签名数据

^{pr2}$

当我用我的钥匙在js在线工具检查标志时,它说你的标志无效。我还生成了具有相同密钥的签名,并在这个工具中检查了java签名,它说它是有效的签名。为什么在线工具说python ecdsa符号无效。python的sign有什么问题?在

联机工具:https://kjur.github.io/jsrsasign/sample/sample-ecdsa.html


Tags: 工具samplekeyhttpsgithubcom标志private
1条回答
网友
1楼 · 发布于 2024-06-03 07:21:18

我解决了这个问题。我添加了signode=sigencode\der参数,它工作正常。在

正确的标志代码:

from ecdsa import SigningKey, VerifyingKey, SECP256k1
from ecdsa.util import sigencode_der

message = 'aaa'
signHex = privateKey.sign(message,hashfunc=hashlib.sha256,sigencode=sigencode_der).encode("hex")
# signHex = 3044022072ae5b5cf026796ee8217df26eb70f3dd72016f87af0a5fd8d6a99faf51e77f802206a77d3a3acc9540721f34e776b8feb7e2ea69e321d25872d3d65b7fd15c8132d

相关问题 更多 >