python 数字签名
时间: 2023-11-08 20:05:54 浏览: 109
Python数字签名是一种用于验证数据完整性和身份验证的技术。它使用公钥和私钥来创建和验证签名。数字签名可以用于保护数据免受篡改和伪造,并确保数据的来源是可信的。
在Python中,可以使用PyCryptodome库来实现数字签名。以下是一个简单的示例代码:
```python
from Crypto.Signature import pkcs1_15
from Crypto.Hash import SHA256
from Crypto.PublicKey import RSA
# 生成RSA密钥对
key = RSA.generate(2048)
# 获取私钥和公钥
private_key = key.export_key()
public_key = key.publickey().export_key()
# 使用私钥对数据进行签名
message = b"Hello, world!"
hash_obj = SHA256.new(message)
signer = pkcs1_15.new(key)
signature = signer.sign(hash_obj)
# 使用公钥验证签名
hash_obj = SHA256.new(message)
verifier = pkcs1_15.new(key.publickey())
try:
verifier.verify(hash_obj, signature)
print("Signature is valid.")
except:
print("Signature is invalid.")
```
阅读全文