大家好。我问了这个问题,但是,这并不聪明,我删除了我的个人资料,只是从我朋友的帐户中询问。
问题是.我尝试使用公钥加密、签名、验证,所以..
明天一切顺利,但我遇到了 DSA-DSS ECDSA。如果你看图片,我认为我针对它存在一些问题。他们在 DSS 中使用私钥创建“签名者”,但他们不在签名中使用它。相反,它使用密钥符号。即使在验证级别,(图中没有出现)他们从“PEM”文件调用公钥并尝试验证而不再次调用 DSS new()..
因此,如果您比较我的代码和图片,那么您实际上会注意到我想说的......
from Crypto.PublicKey import DSA
from Crypto.Signature import DSS
from Crypto.Hash import SHA256
key = DSA.generate(2048)
publickey=key.publickey()
message = b"Hello"
hash_obj = SHA256.new(message)
signer = DSS.new(key, 'fips-186-3')
signature = signer.sign(hash_obj)
所以在这里我尝试验证消息..我没有再次创建对象,并且我从上面显示的密钥中调用了公钥。
pkey=DSS.new(publickey,'fips-186-3')
pkey.verify(hash_obj,signature)
False
正如你所看到的,我得到了“False”。我在 ECDSA 上尝试过 - DSS 再次返回了同样的结果。 所以如果你得到了我想要做的事情,请帮忙,我想要做什么?