首页 > 解决方案 > 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)或实际加密的代码有任何建议,我会很高兴知道。

提前致谢。

标签: pythonoptimizationencryptioncryptography

解决方案


推荐阅读