Python只使用公钥解密签名

2024-04-20 12:36:17 发布

您现在位置:Python中文网/ 问答频道 /正文

一家公司想给我发一个数字签名,即这个method。我只有公钥。此签名用于验证它来自于谁,并且包含我需要的用户的详细信息。在

我不明白的是,我如何只使用公钥和发送给我的签名来解密签名。从这个例子中我能找到的就是验证签名。如果不知道加密字符串是什么,就无法解密。在

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

我是我误解了,还是他们建议的数字签名不同?在


Tags: 用户message详细信息公司method例子vksk
1条回答
网友
1楼 · 发布于 2024-04-20 12:36:17

首先,您需要使用VerifyingKey。 (另见@J0HN优秀评论) 类似于(source: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"

相关问题 更多 >