python中怎么在rsa中用私钥对文件内容签名,给出例子
时间: 2024-03-24 10:40:12 浏览: 56
在 Python 中使用 RSA 加密算法中的私钥对文件内容进行签名,可以使用 PyCrypto 库中的 Crypto.Signature 模块。下面是一个用例子,假设你已经有了一个私钥文件 `private_key.pem` 和一个要签名的文件 `file_to_sign.txt`:
```python
import hashlib
from Crypto.PublicKey import RSA
from Crypto.Signature import PKCS1_v1_5
# 读取私钥文件
with open('private_key.pem', 'r') as f:
private_key = RSA.importKey(f.read())
# 读取要签名的文件
with open('file_to_sign.txt', 'rb') as f:
file_contents = f.read()
# 计算文件的 SHA256 哈希值
file_hash = hashlib.sha256(file_contents).digest()
# 使用私钥对哈希值进行签名
signer = PKCS1_v1_5.new(private_key)
signature = signer.sign(file_hash)
# 将签名保存到文件中
with open('signature.bin', 'wb') as f:
f.write(signature)
```
这个例子中,我们首先使用 PyCrypto 库中的 RSA 模块读取私钥文件,然后读取要签名的文件的内容,并计算出文件的 SHA256 哈希值。接着,我们使用 PKCS1_v1_5 签名算法和私钥对哈希值进行签名,最后将签名保存到文件中。
阅读全文