如何使用pyCryptodome(Python 3.7)中的公共密钥解密

问题描述 投票:0回答:1

我知道这个问题被问了无数次,但是其他提出这个问题的人不够清楚,或者根本不可能(尽管没人说),无论如何,没人会给出明确的答案(也许是代码)。所以:我试图构建一种加密货币,但这纯粹是出于娱乐目的,因此我不需要超级安全,因此我想使用RSA来验证用户的真实性,我用私钥和然后我将消息和加密版本一起发送,然后在需要验证时要求我提供公共密钥并解密。现在问题来了:显然,它需要私钥来解密(我显然不能拥有),而在数学上,如果没有它,它会完美地工作。有没有办法解决?一种类似的方法,但不是RSA也可以。

python authentication rsa public-key pycryptodome
1个回答
0
投票
>>> 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

© www.soinside.com 2019 - 2024. All rights reserved.