使用对称加密算法,可以将一些重要信息加密传输到目标后,使用相同的密钥解密,防止信息在传输过程中被窃取。
pypi:https://pypi.org/project/cryptography
官网:https://cryptography.io/
安装
$ pip install cryptography # 本文使用版本为:cryptography==3.4.7
实现对称加密与解密
from cryptography.fernet import Fernet
key = Fernet.generate_key() # 生成密钥
print(key)
f = Fernet(key) # 使用密钥实例化
message = "test message"
print('加密前信息:', message)
token = f.encrypt(message.encode())
print('加密后信息:', token.decode())
decrypt_message = f.decrypt(token).decode()
print('解密后信息:', decrypt_message)
性能测试
import os
import time
from cryptography.fernet import Fernet
key = Fernet.generate_key() # 生成密钥
f = Fernet(key) # 使用密钥实例化
file_abspath = '/tmp/test_log.txt'
print('文件路径:', file_abspath)
stats = os.stat(file_abspath)
print('文件大小:', round(stats.st_size / 1024 / 1024, 4), 'Mb')
big_file = open(file_abspath, 'rb').read()
t1 = time.time()
token = f.encrypt(big_file)
print(f'加密耗时:{time.time() - t1}')
t2 = time.time()
decrypt_message = f.decrypt(token).decode()
print(f'解密耗时:{time.time() - t2}')
输出信息:
文件路径: /tmp/test_log.txt
文件大小: 11.8468 Mb
加密耗时:0.2421584129333496
解密耗时:0.22025561332702637
用该模块加密、解密10M左右的文件大约需要0.2秒(具体数值要看机器性能,这里只是做简单测试),说明普通的配置文件、模版文件等较小的文本使用该模块加解密问题不大,不会造成很长的阻塞。
想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » Python 使用 cryptography 实现对称加密
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » Python 使用 cryptography 实现对称加密