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

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

如何在 pyCryptodome (Python 3.7) 中使用公鑰解密

如何在 pyCryptodome (Python 3.7) 中使用公鑰解密

慕萊塢森 2022-10-06 19:19:58
我知道這個問題已經被問過無數次了,但是其他人問的不夠清楚,或者這根本不可能(盡管沒有人這么說),反正沒有人給出明確的答案(也許是代碼)。所以:我正在嘗試構建一種加密貨幣,但它純粹是為了好玩,所以我不需要它是超級安全的,我希望使用 RSA 來驗證用戶的真實性,我用私鑰加密交易消息并然后我將消息與加密版本一起發送,然后當我需要驗證時,我要求提供公鑰并解密?,F在問題來了:顯然它需要私鑰來解密(我顯然不能擁有),而從數學上講,如果沒有它,這將完美地工作。有沒有辦法解決?類似工作但不是 RSA 的東西也可以。
查看完整描述

1 回答

?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

我找到了一種更高效、更安全的方法,這里是代碼(直接取自 PKCS1_v1_5 文檔):以下示例顯示了如何使用私有 RSA 密鑰(從文件加載)來計算簽名信息:


>>> from Crypto.Signature import pkcs1_15

>>> from Crypto.Hash import SHA256

>>> from Crypto.PublicKey import RSA

>>>

>>> message = 'To be signed'

>>> key = RSA.import_key(open('private_key.der').read())

>>> h = SHA256.new(message)

>>> signature = pkcs1_15.new(key).sign(h)

在另一端,接收者可以使用匹配的公共 RSA 密鑰驗證簽名(以及消息的真實性):


>>> key = RSA.import_key(open('public_key.der').read())

>>> h = SHA.new(message)

>>> try:

>>>     pkcs1_15.new(key).verify(h, signature)

>>>     print "The signature is valid."

>>> except (ValueError, TypeError):

>>>    print "The signature is not valid."

希望這會有所幫助,如果不是這里是頁面本身的鏈接:https ://pycryptodome.readthedocs.io/en/latest/src/signature/pkcs1_v1_5.html


查看完整回答
反對 回復 2022-10-06
  • 1 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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