我正在做我的 11 年级计算机科学的期末考试,我必须使用加密、解密和蛮力来制作凯撒密码,但我完全坚持了蛮力。有人可以帮我吗?
答案 0 :(得分:0)
您可以使用 itertools 模块为每个组合循环。这就是我要做的:
import itertools
import string
import sys
chars = string.ascii_lowercase + string.ascii_uppercase + string.digits
user_passw = input("Enter Your Password: ")
attempts = 0
for password_length in range(1, 9):
for guess in itertools.product(chars, repeat=password_length):
guess = ''.join(guess)
attempts += 1
print(guess, attempts)
if guess == user_passw:
print('Password Is {}'.format(guess))
sys.exit()
基本上,我们首先定义所有可以在蛮力中使用的字符。为此,我们使用 string 模块创建一个大字符串,其中包含我们将使用的每个字符,称为 chars
之后,我们要求用户输入一个将被暴力破解的密码。
接下来,我们开始一个 for 循环,它将在 1 和 9 范围内运行。请注意,1 代表密码的最小长度,9 代表密码的最大可能长度。如果您愿意,可以将它们更改为 len(user_passw)
。
接下来,我们创建一个嵌套的 for 循环,循环遍历 chars
字符串中的每个字母。
然后我们打印猜测和尝试次数纯粹是为了视觉参考。
接下来,我们检查猜测是否等于密码。如果是,则计算机将其打印给用户并退出循环