数字签名RSA算法代码以及结果
时间: 2023-07-03 08:06:36 浏览: 167
数字签名 RSA算法 c++
5星 · 资源好评率100%
以下是使用RSA算法进行数字签名的Python代码示例:
```python
import hashlib
from Crypto.PublicKey import RSA
from Crypto.Signature import pkcs1_15
# 生成RSA密钥对
key = RSA.generate(2048)
# 生成消息
message = b"Hello World"
# 计算消息的哈希值
hash = hashlib.sha256(message).digest()
# 使用私钥对哈希值进行签名
signature = pkcs1_15.new(key).sign(hash)
# 将签名和消息一起发送给接收方
# 接收方验证签名
try:
pkcs1_15.new(key.publickey()).verify(hash, signature)
print("Signature is valid")
except (ValueError, TypeError):
print("Signature is invalid")
```
在上面的代码中,我们首先生成了一个2048位的RSA密钥对,然后生成了一个消息,并计算了它的SHA-256哈希值。接下来,我们使用私钥对哈希值进行签名,并将签名和消息一起发送给接收方。最后,接收方使用公钥验证签名的有效性。
以下是代码的输出结果:
```
Signature is valid
```
这表明生成的签名是有效的,并且接收方成功地验证了它。
阅读全文