帮我用python写一个能够用RSA加密100mb文件的代码而且还能统计加解密时间
时间: 2023-04-05 21:00:45 浏览: 45
您好,我可以回答这个问题。以下是Python代码,可以使用RSA加密100MB文件,并统计加解密时间:
```python
import time
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
# 生成RSA密钥对
start_time = time.time()
key = RSA.generate(2048)
end_time = time.time()
print("生成密钥对时间:", end_time - start_time, "秒")
# 保存公钥和私钥
public_key = key.publickey().export_key()
private_key = key.export_key()
with open("public_key.pem", "wb") as f:
f.write(public_key)
with open("private_key.pem", "wb") as f:
f.write(private_key)
# 读取公钥和私钥
with open("public_key.pem", "rb") as f:
public_key = RSA.import_key(f.read())
with open("private_key.pem", "rb") as f:
private_key = RSA.import_key(f.read())
# 加密文件
start_time = time.time()
cipher = PKCS1_OAEP.new(public_key)
with open("input.txt", "rb") as f:
with open("output.txt", "wb") as g:
while True:
data = f.read(214)
if not data:
break
encrypted_data = cipher.encrypt(data)
g.write(encrypted_data)
end_time = time.time()
print("加密时间:", end_time - start_time, "秒")
# 解密文件
start_time = time.time()
cipher = PKCS1_OAEP.new(private_key)
with open("output.txt", "rb") as f:
with open("decrypted.txt", "wb") as g:
while True:
data = f.read(256)
if not data:
break
decrypted_data = cipher.decrypt(data)
g.write(decrypted_data)
end_time = time.time()
print("解密时间:", end_time - start_time, "秒")
```
请注意,这个代码只是一个示例,实际使用时需要根据具体情况进行修改。