Python:加速列表的加密

时间:2017-05-02 09:02:52

标签: python list encryption

我正在使用python来加密字符串列表。然而它需要很长时间(0.045秒/列表)。我是否犯了任何使我的代码运行缓慢的重大错误。 这是代码:

row=['string1', 'string2','string3','string4','string5','string6','string7','string8','string9']

from pyDes import *
import time

def encode(data,password):
    k = des(password, CBC, "\0\0\0\0\0\0\0\0", pad=None, padmode=PAD_PKCS5)
    d = k.encrypt(data)
    return d

start=time.time()
for idx, val in enumerate(row):
    row[idx]=encode(str(val).encode(), 'password')

end=time.time()    
print(end-start)

实际上,列表更长(~33)并且是字符串和整数的组合。 有关如何加快流程的任何提示。我也会考虑使用不同的加密方法。 谢谢!

1 个答案:

答案 0 :(得分:3)

任何密码的纯python实现基本上都是狗慢。 Python是为很多东西而制作的,但是快速位操作并不是其中之一。这就是为什么许多解释语言使用C / C ++实现(甚至是手动优化的程序集)的密码。

在最近合理的英特尔& amp;上尝试PyCrypto supports the AES-NI CPU instruction {{3}} AMD处理器。谁知道,你实际上可能会使用一个在几分钟内无法被黑客攻击的密码实现(比如单个DES,其密钥大小为56位)。