- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一个应用程序来暴力破解完全小写、仅字母、6 个字符长的密码,其中有 2 个字母重复两次。我尝试使用 itertools.product(string.lowercase, 6)
但即使我有一台非常“强大”的计算机,它也没有足够的 RAM 来完成计算,那是因为 itertools
实际上在返回之前构建了一个完整的列表。
然后我想到了一个像这样的列表 [0, 0, 0, 0, 0, 0]
它会从右向左计数,每当索引达到 26 时,它就会返回到 0,并且它左边的槽会增加 1,除非我还没有找到一种编码方法。
我已经尝试破解这个问题有一段时间了,转向这里是我最后的手段,任何算法技巧都非常受欢迎。我很抱歉提出这种“家庭作业”类型的问题,但我真的被这个问题惊呆了。
最佳答案
使用这样的东西不会占用太多内存:
import itertools
import string
for guess in itertools.product(string.lowercase, repeat=6):
if checkguess(''.join(guess)):
print("Password is: {0}".format(''.join(guess)))
itertools.product
会一一生成可能的组合。它不返回任何内容,它是一个生成器函数。请参阅python documentation 。 itertools
中的所有函数的行为都类似于或处理迭代器,因此得名。
如果您的代码占用了大量内存,您可能需要将其发布到此处,以便我们找到罪魁祸首。
根据 DSM 对更快代码的建议,您可以执行以下操作:
import string
from itertools import product, combinations, permutations
for guess_chars in combinations(string.lowercase, 4):
for doubled_chars in combinations(guess_chars, 2):
for guess in permutations(guess_chars + doubled_chars):
#...
关于python - 使用 itertools 暴力破解应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20876322/
用户将输入重量阈值、物体数量以及 3 个物体的重量和成本。输出应该是背包图,并且应该显示最优解。 重量应该最大,成本应该最小。 示例输出: w=60 n=3 w = 10 w2 = 35 w3 = 3
所以我在学习 Python 的同时从“Violent Python”开始黑客攻击,我遇到了一个问题这是我的代码: import optparse import socket from socket i
我是一名优秀的程序员,十分优秀!