def bruteForce( dictionary = {}):
key = 0
for i in range(len(dictionary)):
keyRank = 0
for k in range(68719476736):
attempt = decrypt(dictionary[i], k)
if(i != attempt):
keyRank = 0
break
else:
keyRank += 1
key = k
print 'key attempt: {0:b}'.format(key)
if(keyRank == len(dictionary)):
print 'found key: {0:b}'.format(key)
break
- 密钥是36位
- 我在
for k in range()
代码行 上收到内存错误
- 为什么这是内存问题?在运行此行之前,python是否构建了一个实际的int列表?有没有更好的方法来编写这个循环?
- 我是Python的新手,这不会成为C或Java的问题。
- 这是一种已知的明文/密文攻击。字典是P:C对的映射。
- 它在虚拟机上,如果需要,我可以提高内存,但是想知道它失败的原因和基于代码的解决方法或更好的惯用方法。
醇>