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
添加回答
舉報