python如何进行签名及验签
时间: 2023-07-04 20:30:15 浏览: 85
Python可以使用`cryptography`库来进行签名和验证签名。下面是一个简单的示例代码:
```python
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.asymmetric import padding
from cryptography.hazmat.primitives.asymmetric import rsa
# 生成RSA密钥对
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
public_key = private_key.public_key()
# 生成要签名的数据
data = b"hello world"
# 对数据进行签名
signature = private_key.sign(data, padding.PKCS1v15(), hashes.SHA256())
# 验证签名
try:
public_key.verify(signature, data, padding.PKCS1v15(), hashes.SHA256())
print("Signature is valid")
except:
print("Signature is invalid")
```
在这个示例中,我们首先生成了一个RSA密钥对,并使用私钥对数据进行签名。我们使用`PKCS1v15`填充方案和`SHA256`哈希算法来计算签名。
然后,我们使用公钥来验证签名。如果签名有效,则输出“Signature is valid”,否则输出“Signature is invalid”。
阅读全文