我是编写代码的初学者,我从 Python 开始,因为它看起来最简洁、最容易上手(我目前使用的是 Python 3.2)。现在我读了一些关于Python编码的在线书籍等等,我制作了一些小程序,仅此而已。
但后来我想制作一个程序,可以暴力破解随机密码,例如:
PassWord = random.randint(0,9999)
我做了一些可以尝试随机密码的东西:
import random
PassWord = str(random.randint(0,9999))
Trial = ' '
while Trial != PassWord:
Trial = str(random.randint(0,9999))
print(Trial)
if Trial == PassWord:
print('The password is: '+PassWord)
input()
但这并不是真正的暴力攻击,它更多的是尝试随机猜测密码。我认为暴力攻击首先尝试使用 1 位数字的所有可能性,然后是 2、3 等。但我不知道如何做到这一点。
如果有人会说如何创建一个程序,首先检查 1 位数字的所有可能性,如果可能的话,按照正确的顺序(0、1、2、3 等),然后检查 2,3 和 4 位数字,我将非常感激。
然后我就可以解决这个问题,并了解有关 Python 的更多信息。
首先代码:
from itertools import product
chars = '0123456789' # chars to look for
for length in range(1, 3): # only do lengths of 1 + 2
to_attempt = product(chars, repeat=length)
for attempt in to_attempt:
print(''.join(attempt))
itertools.product
产生其输入的笛卡尔连接 - 在这种情况下,它被“连接”到自身。因此,在第一次迭代中,每个字符都会被打印出来。然后在下一次迭代中,因为repeat=length
(and length
现在 == 2),生成“00”、“01”等...值得尝试并查看输出以更好地理解它。
这也意味着您可以输入字母(大写/小写),并更改中的上限range
功能。
它当然不会打破代码破解的世界,但应该让您了解 Python 的灵活性和可用的工具。
我将让您检查密码是否匹配并打破循环。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)