python - Vigenère 加密的时间优化
问题描述
我最近尝试为文件创建自己的 Vigenère 加密脚本。它在加密和解密机制上都没有问题。但是当涉及到“大文件”时,它真的很慢。例如,一个 772 Ko 文件需要 13.71 秒,它看起来不像我预期的那样是线性的。假设它与我尝试在缓冲区中读取整个文档的事实有关。
关键部分仅在一行中,对于缓冲区中的每个字节(f.read()),我添加了对应的键的值。我认为这不是最佳的,但我目前没有想到另一种方法。
for i, v in enumerate(buf):
output_buffer += bytes([(v+m*key[i%keylength])%256])
“m”只是一个参数,设置为 1 表示加密,-1 表示解密。文件缓冲区“buf”和键是字节,而不是字符串。
如果您对如何使用缓冲区(而不是读取整个文档并将其放入 ram)或实际加密的代码有任何建议,我会很高兴知道。
提前致谢。
解决方案
推荐阅读
- regex - 移动主题与特定 RegEx 匹配的电子邮件
- laravel - 在 php 刀片文件中,客户端令牌 Vue 组件未显示
- angular - ngFor 过滤器在子组件中返回 no items 消息
- python - 使用 Python YouTube API 的 API 请求数量庞大
- java - 如何在 java 中创建一个安全的泛型数组对象?
- html - 导航溢出框阴影
- hibernate - 更新对象时Spring启动多对一映射错误
- python - 如何在没有闰日的情况下创建日期时间列表?
- python - Python 版本冲突和符号链接
- knn - 使用 MFCC 进行婴儿哭泣检测和使用 KNN 分类器进行哭泣原因