python rsa签名
时间: 2023-09-17 11:14:57 浏览: 43
RSA签名是一种数字签名技术,它使用公钥密码体制来保证信息的完整性和身份验证。在Python中,可以使用PyCryptodome库中的RSA模块来实现RSA签名。下面是一个简单的Python代码示例:
```python
from Crypto.PublicKey import RSA
from Crypto.Signature import pkcs1_15
from Crypto.Hash import SHA256
# 生成RSA密钥对
key = RSA.generate(2048)
# 获取私钥和公钥
private_key = key.export_key()
public_key = key.publickey().export_key()
# 待签名的数据
message = b"Hello, World!"
# 对数据进行Hash
h = SHA256.new(message)
# 用私钥对Hash值进行签名
signer = pkcs1_15.new(key)
signature = signer.sign(h)
# 验证签名的正确性
verifier = pkcs1_15.new(key.publickey())
try:
verifier.verify(h, signature)
print("Signature is valid.")
except (ValueError, TypeError):
print("Signature is invalid.")
```
上述代码中,我们首先生成了一个2048位的RSA密钥对,然后使用私钥对待签名的数据进行签名,再使用公钥对签名进行验证。在实际应用中,需要将公钥发送给需要验证签名的人,而私钥需要妥善保管,不要泄露。