如何使用 Python 创建密码生成器?
已发表: 2021-08-20安全是我们生活中最重要的部分之一。 随着大多数事情都在网上进行,安全性的重要性日益增加。 当我们谈论安全性时,密码就会浮出水面。
在本文中,我们将创建一个密码生成器,帮助我们快速生成随机和强密码。
为什么我们需要密码生成器?
因为我们无法立即想到不同的密码模式。
但是,计算机的情况并非如此。 计算机可以在几秒钟内根据我们的自定义生成随机和强密码。 有许多可用的密码生成器。
我们可以用我们喜欢的自定义来创建我们自己的吗?
是的,我们绝对可以创造一个。 在这里,我们将向您展示如何做到这一点。
让我们创建一个密码生成器。
密码生成器
创建我们自己的密码生成器的最大好处是我们可以随心所欲地对其进行自定义。
首先,我们将创建一个密码生成器,询问密码的长度并生成一个包含数字、字母和特殊字符的随机密码。
接下来,我们将通过询问每种类型字符的数量来改进它,例如数字、字母和特殊字符的数量。
因此,事不宜迟,让我们看看使用 Python 创建密码生成器的步骤。
脚步
- 将所有字符存储为列表。 我们可以使用 Python 的 string 模块或将它们全部输入。
- 要求用户输入密码的长度。
- 使用
random.shuffle方法随机播放字符。 - 初始化一个空列表来存储密码。
- 编写一个迭代
length时间的循环。- 使用
random.choice方法从所有字符中随机选择一个字符。 - 将随机字符附加到密码中。
- 使用
- 随机排列生成的密码列表,使其更加随机。
- 使用
join方法将密码列表转换为字符串。 - 打印密码。
按照上面的步骤,尝试写代码。 不用担心,即使您不会编写代码。 查看下面的代码。
代码
import string import random ## characters to generate password from characters = list(string.ascii_letters + string.digits + "[email protected]#$%^&*()") def generate_random_password(): ## length of password from the user length = int(input("Enter password length: ")) ## shuffling the characters random.shuffle(characters) ## picking random characters from the list password = [] for i in range(length): password.append(random.choice(characters)) ## shuffling the resultant password random.shuffle(password) ## converting the list to string ## printing the list print("".join(password)) ## invoking the function generate_random_password()上面的代码是不言自明的。 我们刚刚按照描述的步骤编写代码。 因此,如果您阅读这些步骤,您在理解代码方面不会发现任何问题。
现在,运行代码并生成密码。 示例输出如下。
Enter password length: 10 d&amIzK%d)观察上面输出中的密码。 有数字吗? 不可以。因为不能保证该程序将包含数字。
接下来,我们尝试通过要求用户输入他们想要的数字、字母和特殊字符的数量来保证程序将包含数字和特殊字符。
当用户输入每种类型的字符数时,程序会将相应的字符类型数包含在密码中。
让我们看看接受每种类型的字符数并生成密码的代码。
import string import random ## characters to generate password from alphabets = list(string.ascii_letters) digits = list(string.digits) special_characters = list("[email protected]#$%^&*()") characters = list(string.ascii_letters + string.digits + "[email protected]#$%^&*()") def generate_random_password(): ## length of password from the user length = int(input("Enter password length: ")) ## number of character types alphabets_count = int(input("Enter alphabets count in password: ")) digits_count = int(input("Enter digits count in password: ")) special_characters_count = int(input("Enter special characters count in password: ")) characters_count = alphabets_count + digits_count + special_characters_count ## check the total length with characters sum count ## print not valid if the sum is greater than length if characters_count > length: print("Characters total count is greater than the password length") return ## initializing the password password = [] ## picking random alphabets for i in range(alphabets_count): password.append(random.choice(alphabets)) ## picking random digits for i in range(digits_count): password.append(random.choice(digits)) ## picking random alphabets for i in range(special_characters_count): password.append(random.choice(special_characters)) ## if the total characters count is less than the password length ## add random characters to make it equal to the length if characters_count < length: random.shuffle(characters) for i in range(length - characters_count): password.append(random.choice(characters)) ## shuffling the resultant password random.shuffle(password) ## converting the list to string ## printing the list print("".join(password)) ## invoking the function generate_random_password()那么,前面的代码和这段代码有什么区别呢?

- 我们为每种类型的字符编写了单独的循环以将它们添加到密码中。
- 有两个条件检查来验证总字符数和密码长度。
我们添加了一些额外的代码。 但是,该模式与之前的代码类似。 所以,你不会觉得理解它有任何困难。
现在,是时候执行并检查输出了。 看下面的测试运行。
Enter password length: 10 Enter alphabets count in password: 3 Enter digits count in password: 2 Enter special characters count in password: 3 V2(&#XlQq1如果您看到这次生成的密码,则它具有用户想要的最少字符数。 并且该程序还包含了 2 个随机字符,使密码长度等于用户输入。
欢呼! 我们有一个完整的强密码生成器。
结论
我们已经看到了如何从头开始创建密码生成器。 我们可以为其添加更多功能吗? 是的,我们可以添加任意数量的。 但是,请确保生成的密码足够强。
从代码生成密码并将其用于您的下一个在线帐户。
接下来,了解如何在 Python 中构建井字游戏。
快乐编码!
