数字签名算法代码
时间: 2023-07-03 12:18:57 浏览: 109
数字签名算法是一种用于确保消息或文档的完整性、认证和不可否认性的加密技术。常见的数字签名算法包括RSA、DSA、ECDSA等。下面是RSA数字签名算法的Python实现代码示例:
```python
import hashlib
from Crypto.PublicKey import RSA
from Crypto.Signature import pkcs1_15
# 生成RSA密钥对
key_pair = RSA.generate(2048)
private_key = key_pair.export_key()
public_key = key_pair.publickey().export_key()
# 签名
message = b"Hello, world!"
hash_obj = hashlib.sha256(message)
signer = pkcs1_15.new(RSA.import_key(private_key))
signature = signer.sign(hash_obj)
# 验证签名
hash_obj = hashlib.sha256(message)
verifier = pkcs1_15.new(RSA.import_key(public_key))
try:
verifier.verify(hash_obj, signature)
print("Signature is valid.")
except:
print("Signature is invalid.")
```
在这个示例中,我们首先生成了一个RSA密钥对,并使用私钥对消息进行签名。然后,我们使用公钥来验证签名的有效性。在验证签名时,我们需要使用相同的哈希算法来计算消息的哈希值。如果签名有效,则输出“Signature is valid.”,否则输出“Signature is invalid.”。
阅读全文