rsa签名python
时间: 2023-10-03 15:10:07 浏览: 93
RSA签名是一种数字签名算法,使用公钥加密数据,再使用私钥进行解密,以确保数据的完整性和安全性。以下是使用Python进行RSA签名的示例代码:
```python
from Crypto.PublicKey import RSA
from Crypto.Signature import PKCS1_v1_5
from Crypto.Hash import SHA256
# 生成RSA密钥对
key = RSA.generate(2048)
# 获取私钥和公钥
private_key = key.export_key()
public_key = key.publickey().export_key()
# 加载私钥和公钥
rsa_private_key = RSA.import_key(private_key)
rsa_public_key = RSA.import_key(public_key)
# 签名数据
data = b"Hello, world!"
hash_value = SHA256.new(data)
signer = PKCS1_v1_5.new(rsa_private_key)
signature = signer.sign(hash_value)
# 验证签名
verifier = PKCS1_v1_5.new(rsa_public_key)
if verifier.verify(hash_value, signature):
print("Signature is valid")
else:
print("Signature is invalid")
```
在上述代码中,我们首先使用Crypto库生成了一个2048位的RSA密钥对,并从中获取私钥和公钥。然后,我们加载这些密钥,并使用私钥对数据进行签名,使用公钥对签名进行验证。最后,我们检查签名是否有效,并输出相应的结果。
阅读全文