亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ecdsa 簽名密鑰格式

ecdsa 簽名密鑰格式

慕工程0101907 2021-08-14 21:39:50
我正在嘗試使用 python 創建一個公鑰/私鑰對。我使用以下方法創建了一個私鑰:private_key = ''.join(['%x' % random.randrange(16) for x in range(0, 64)])使用此私鑰,我嘗試使用 ecdsa 圖生成相應的公鑰def privateKeyToPublicKey(s):    sk = ecdsa.SigningKey.from_string(s, curve=ecdsa.SECP256k1)    vk = sk.verifying_key    return ('\04' + sk.verifying_key.to_string())由于格式錯誤,我的字符串格式錯誤,我無法創建簽名密鑰 (sk)。但我不確定字符串 s 應該如何/什么格式才能使 SigningKey 工作。運行腳本時出現以下錯誤:Traceback (most recent call last):  File "address.py", line 23, in <module>    privateKeyToPublicKey(private_key)  File "address.py", line 20, in privateKeyToPublicKey    sk = ecdsa.SigningKey.from_string(s, curve=ecdsa.SECP256k1)  File "/usr/local/lib/python3.6/dist-packages/ecdsa/keys.py", line 149, in from_string    assert len(string) == curve.baselen, (len(string), curve.baselen)AssertionError: (64, 32)
查看完整描述

2 回答

?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

我意識到我的錯誤,輸入必須以字節為單位,私鑰為十六進制格式。在 python2 中,您可以使用:

private_key.decode('hex')

或者你可以使用

binascii.unhexlify

在python3中


查看完整回答
反對 回復 2021-08-14
  • 2 回答
  • 0 關注
  • 271 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號