python凯撒密码蛮力解密

时间:2021-01-19 15:25:57

标签: python caesar-cipher

我正在做我的 11 年级计算机科学的期末考试,我必须使用加密、解密和蛮力来制作凯撒密码,但我完全坚持了蛮力。有人可以帮我吗?

1 个答案:

答案 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 字符串中的每个字母。

然后我们打印猜测和尝试次数纯粹是为了视觉参考。

接下来,我们检查猜测是否等于密码。如果是,则计算机将其打印给用户并退出循环

相关问题