Python仅使用公钥解密签名

时间:2015-06-24 10:43:43

标签: python encryption

公司希望向我发送数字签名,即method。我只有公钥。此签名用于验证来自 AND 的人员是否包含我需要的用户详细信息。

我不明白的是我如何仅使用公钥解密签名以及我发送的签名。从我可以找到的示例中可以做的就是验证签名。不知道加密字符串是什么,你无法解密。

from ecdsa import SigningKey, NIST384p
sk = SigningKey.generate(curve=NIST384p)
vk = sk.get_verifying_key()
signature = sk.sign("message")
assert vk.verify(signature, "message")

我是误解,还是他们建议使用不同类型的数字签名?

1 个答案:

答案 0 :(得分:2)

首先,您需要使用VerifyingKey。 (另见@ J0HN优秀评论) 像(来源:https://github.com/warner/python-ecdsa):

from ecdsa import VerifyingKey, BadSignatureError
vk = VerifyingKey.from_pem(open("public.pem").read())
message = open("message","rb").read()
sig = open("signature","rb").read()
try:
    vk.verify(sig, message)
    print "good signature"
except BadSignatureError:
    print "BAD SIGNATURE"