在 Python 中生成密码
我们经常听到有关系统的数据泄露、网络威胁和网络攻击的消息; 因此,数据的安全性和保密性已成为我们生活中非常重要的一部分。 现在,保护数据的方法之一是使用密码保护它们。
在本文中,我们将讨论 Python 中的密码生成。
在 Python 中生成密码
当我们谈论安全性时,密码经常出现。 现在,由于这些密码用于保护如此多的重要数据,因此它们一定很难被黑客破解。
攻击者经常尝试通过随机尝试不同的字符组合并猜测正确的密码来破解此类密码。
当我们人类手动生成密码时,往往很容易破解。 许多人尝试将他们的名字与数字和符号结合起来,这是黑客破解的小菜一碟。
因此,应创建这些密码,使其不易被破解。 我们有一些Python的密码生成方法,破解难度大,制作简单。
现在,让我们详细讨论其中的一些。
使用 Python 中的随机模块生成密码
Python 中的随机模块从列表中生成随机元素。 此外,我们将使用 Python 随机模块中的 choice() 方法。
choice() 方法从列表中选择随机元素。 因此,random.choice() 方法将是我们使用此方法生成密码的主要方法。
但是,现在您一定想知道我们正在谈论的这个列表是什么。 因此,random.choice() 方法将从中选择的列表将包含所有小写和大写字母、数字和标点符号。
因此,将生成的密码将包含这些难以破解的随机顺序的字符。
现在,我们将使用 Python 中的字符串模块来获取所有的小写字母、大写字母、数字和标点符号。 string 模块的 ascii.lowercase 方法用于获取英文字母表中的所有小写字母,ascii.uppercase 方法用于获取英文字母表中的所有大写字母。
为了获取数字和标点符号,我们分别使用 Python 中 string 模块中的 string.digits 和 string.punctuation 方法。
让我们看看使用 Python 中的随机和字符串模块生成密码的代码。
import random
import string
def passwordGen(length):
lower = string.ascii_lowercase
upper = string.ascii_uppercase
digits = string.digits
symbols = string.punctuation
comb = lower + upper + digits + symbols
result_str = ''.join(random.choice(comb) for i in range(length))
print("Password of length ", length, "is:", result_str)
passwordGen(12)
passwordGen(10)
passwordGen(5)
输出:
Password of length 12 is: ^)n34W6~0Wdx
Password of length 10 is: g&#'G-T\vn
Password of length 5 is: &g/S3
因此,正如您在上面的输出中看到的,我们有三个不同长度的密码,它们是唯一的并且很难破解。
但是,我们在代码示例中导入了 random 和 string 模块。 之后,我们创建了一个函数 passwordGen,它以一个长度作为参数并打印该特定长度的密码。
在函数内部,我们将所有字母、数字和符号存储在不同的变量中。 现在,我们已经将所有这些字符组合成一个字符串,并将其存储在一个变量 comb 中。
现在,我们已经使用 random.choice(comb)
从每个索引的字符串梳中随机选择字符,直到指定长度,然后打印结果。
使用 Python 中的 Secrets 模块生成密码
出于安全目的,Python 中的另一个模块用于生成强加密随机数。 这个模块被称为秘密模块; 但是,此模块可从 Python 3.6 及更高版本开始使用。
这个秘密模块提供了操作系统最安全的随机源; 因此,生成的密码更加安全有效。 现在让我们讨论使用 Python 的 secrets 模块生成密码的程序。
该程序类似于我们之前讨论过的程序,但使用机密模块在保护我们的系统方面更加安全和有效。
import string
import secrets
def passwordGen(len):
combination = string.ascii_letters + string.digits + string.punctuation
password = ''.join(secrets.choice(combination) for i in range(len))
print("Password is: ", password)
passwordGen(12)
passwordGen(8)
输出:
Password is: Gz!*j3p4xd$Z
Password is: 5#;CSIa7
因此,正如您在输出中看到的那样,我们创建了一个方法 passwordGen,其中我们有一个变量组合,它结合了所有字母、数字和标点符号,用于使用 Python 中字符串模块的方法创建密码。
之后我们使用 secrets.choice(combination)
方法,给它所有的字符让其选择,生成一个给定长度len的密码,然后打印出来。 因此,我们使用 secrets 模块在 Python 中执行密码生成。
总结
在本文中,我们讨论了如何在 Python 中生成密码。 由于安全是这个时代的主要要求,因此生成安全可靠的密码非常重要。
为此,Python 有两个模块,即 random 和 secrets,它们有助于生成困难且不易破解的密码。 但是,这两个模块都从字符串模块中获取帮助,以获取可供选择的字符组合。
然而,secrets 模块是从 Python 3.6 版本开始实现的,但仍然被认为是一种更安全可靠的密码生成方式。
相关文章
Django 中的 Slug
发布时间:2023/05/04 浏览次数:173 分类:Python
-
本篇文章旨在定义一个 slug 以及我们如何使用 slug 字段在 Python 中使用 Django 获得独特的帖子。
在 Django 中按降序过滤查询集中的项目
发布时间:2023/05/04 浏览次数:157 分类:Python
-
在这个讲解中,学习如何借助 Django 中的 order_by() 方法按降序过滤出查询集中的项目。
Django ALLOWED_HOSTS 介绍
发布时间:2023/05/04 浏览次数:181 分类:Python
-
本文展示了如何创建您的 Django 网站,为公开发布做好准备,如何设置 ALLOWED_HOSTS 以及如何在使用 Django 进行 Web 部署期间修复预期的主要问题。
Django 中的 Select_related 方法
发布时间:2023/05/04 浏览次数:129 分类:Python
-
本文介绍了什么是查询集,如何处理这些查询以及我们如何利用 select_related() 方法来过滤 Django 中相关模型的查询。
使用 Post 请求将数据发送到 Django 服务器
发布时间:2023/05/04 浏览次数:159 分类:Python
-
在这篇关于Django的讲解中,我们简要介绍了post和get请求以及如何在Django中用post实现CSRF token。
Django 返回 JSON
发布时间:2023/05/04 浏览次数:106 分类:Python
-
在与我们的讨论中,我们简要介绍了 JSON 格式,并讨论了如何借助 Django 中的 JsonResponse 类将数据返回为 JSON 格式。
在 Django 中创建对象
发布时间:2023/05/04 浏览次数:59 分类:Python
-
本文的目的是解释什么是模型以及如何使用 create() 方法创建对象,并了解如何在 Django 中使用 save() 方法。
在 Django 中为多项选择创建字段
发布时间:2023/05/04 浏览次数:75 分类:Python
-
在本文中,我们将着眼于为多项选择创建一个字段,并向您展示如何允许用户在 Django 中进行多项选择。