python如何进行签名及验签
时间: 2023-07-04 15:26:13 浏览: 81
python做的一个签名程序
Python中可以使用PyCryptodome模块进行签名和验签。以下是一个简单的例子:
```python
from Crypto.PublicKey import RSA
from Crypto.Signature import PKCS1_v1_5
from Crypto.Hash import SHA256
# 生成RSA密钥对
key = RSA.generate(2048)
# 生成要签名的数据
data = b"Hello, world!"
# 使用SHA256进行哈希
hash_obj = SHA256.new(data)
# 用私钥对哈希结果进行签名
signer = PKCS1_v1_5.new(key)
signature = signer.sign(hash_obj)
# 使用公钥对签名进行验证
verifier = PKCS1_v1_5.new(key.publickey())
if verifier.verify(hash_obj, signature):
print("Signature is valid.")
else:
print("Signature is invalid.")
```
在这个例子中,我们首先使用RSA.generate()方法生成一个2048位的RSA密钥对。然后,我们生成要签名的数据,并使用SHA256算法对其进行哈希。接着,我们使用私钥对哈希结果进行签名,并使用公钥对签名进行验证。如果验证通过,则说明签名是有效的。
需要注意的是,此处只是一个简单的例子,实际应用中需要考虑更多的安全性问题。
阅读全文