python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python创建密码生成工具

Python创建高强度密码生成工具方法实例

作者:简讯Alfred

这篇文章主要为大家介绍了Python创建高强度密码生成工具方法实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

规划项目

学习编程最好的办法就是实际写一个项目,我们这里通过 Python 来编写密码生成器。

在互联网时代,账户就像空气一样常见,创建强大而安全的密码是一项任重道远的任务。虽然密码生成工具数不胜数,但是你有没有想过通过自己的双手来创建一个密码生成工具,让我们来构建一个生成密码的项目吧。

首先,在构建之前、我们需要知道我们想从这个项目中得到什么,这个工具可以生成随机数字、符号和字母组合的密码。

我们在构建项目时可以学到以下内容:

我们了解我们的目标之后,继续说明这个密码工具的流程:

创建项目

1. 导入库

首先要导入两个必要的库:string 和 random

string 库提供各种与字符串相关的函数和常量。它包含 ascii_lowercaseascii_uppercase、标点符号和数字常量,分别代表相应的字符集。

random 库提供生成随机数和序列的函数。它包含 choice() 函数,可从给定序列中随机选择一个元素。

import string
import random

2. 定义 generate_password() 函数

generate_password() 函数是密码生成器的核心。它接受一个指定所需密码长度的可选参数 length

这个函数包含一个默认参数 length,密码字符长度,如果不提供这个参数,那么就默认使用 12 的长度。

字符池(character pool)的生成来自 string 这个库,包含了小写字母 ascii_lowercase,大写字母 ascii_uppercase、标点符号 punctuation 和数字 digits

然后从字符池中随机添加一个字符到 password 字符串中。可以理解为不断累加到 length 限制的长度。

def generate_password(length=12):
    # 定义 character pool
    character_pool = string.ascii_lowercase + string.ascii_uppercase + string.punctuation + string.digits
    password = ""
    for _ in range(length):
        password += random.choice(character_pool)
    return password

3. 生成并展示密码

在函数外部,代码调用 generate_password() 函数生成随机密码。它将生成的密码赋值给 generated_password 变量,并使用 print() 将其显示给用户。

generated_password = generate_password()
print("你的密码是:", generated_password)

不如我们为密码生成器增加一些功能:

好了,让我们在项目中添加新代码。

4. 定义字符集

lowercase_letters = string.ascii_lowercase
uppercase_letters = string.ascii_uppercase
symbols = string.punctuation
numbers = string.digits

这几行代码定义了四个变量:小写字母、大写字母、符号和数字。每个变量都包含一个字符串,其中包含相应的字符集。string 模块提供了这些常量,以便于访问不同的字符组。

5. 根据用户指定的标准创建密码

character_pool = lowercase_letters
if include_symbols:
    character_pool += symbols
if include_numbers:
    character_pool += numbers
if include_uppercase:
    character_pool += uppercase_letters

这些 if 语句会检查用户输入的每种字符类型(符号、数字、大写字母)。如果用户表示要包含特定的字符类型,相应的字符集就会附加到 character_pool 字符串中。这样可以确保密码生成器在生成密码时添加指定的字符类型。

6. 生成密码

for _ in range(length):
    password += random.choice(character_pool)
return password

此循环迭代 length 次,其中 length 为指定的密码长度。在每次迭代中,使用 random.choice() 函数从字符库中随机选择一个字符。最后将返回密码字符串。

7. 获取用户输入的密码标准

password_length = int(input("请输入密码长度:"))
include_symbols = input("包含标点符号 (y/n): ") == "y"
include_numbers = input("包含数字 (y/n): ") == "y"
include_uppercase = input("包含大写字母 (y/n): ") == "y"

这几行代码用来收集用户对密码标准(长度、符号、数字和大写字母)的要求,并将其存储在相应的变量中。

运行代码

基础代码:

import string
import random
def generate_password(length=12):
    # 定义 character pool
    character_pool = string.ascii_lowercase + string.ascii_uppercase + string.punctuation + string.digits
    password = ""
    for _ in range(length):
        password += random.choice(character_pool)
    return password
# 生成并展示密码
generated_password = generate_password()
print("你生成的密码是:", generated_password)
# 运行结果
# 你生成的密码是:\{Ckz<@svHN!

完善后的代码

允许用户指定生成高强度的安全密码:

import string
import random
def generate_password(length=12, include_symbols=True, include_numbers=True, include_uppercase=True):
    password = ""
    # 定义字符集
    lowercase_letters = string.ascii_lowercase
    uppercase_letters = string.ascii_uppercase
    symbols = string.punctuation
    numbers = string.digits
    # 基于用户的要求创建字符池
    character_pool = lowercase_letters
    if include_symbols:
        character_pool += symbols
    if include_numbers:
        character_pool += numbers
    if include_uppercase:
        character_pool += uppercase_letters
    # 生成密码
    for _ in range(length):
        password += random.choice(character_pool)
    return password
# 根据用户输入来确定密码要求
password_length = int(input("请输入密码长度:"))
include_symbols = input("包含标点符号 (y/n):") == "y"
include_numbers = input("包含数字 (y/n):") == "y"
include_uppercase = input("包含大写字母 (y/n):") == "y"
# 生成并展示密码
generated_password = generate_password(password_length, include_symbols, include_numbers, include_uppercase)
print("你生成的密码是:", generated_password)

运行结果

请输入密码长度:6
包含标点符号(y/n):y
包含数字 (y/n):y
包含大写字母 (y/n):y
你生成的密码是:z-=Sx<

这份代码所构建的密码生成器是一款简单有效的密码生成工具。它允许用户自定义密码长度和字符类型,用途广泛,可满足个人需求。

以上就是Python创建高强度密码生成工具方法实例的详细内容,更多关于Python创建密码生成工具的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文