如何使用Python创建不可破解的密码(附代码)

214 阅读3分钟

在我们之前的Python教程中,你已经学会了如何在Python中监控内存消耗。在本教程中,你将学习密码是如何被黑掉的,以及如何在Python中创建不可破解的密码。

拥有一个安全的密码是非常重要的,因为总是存在着安全威胁,如网络攻击、密码泄露和数据泄露。因此,要始终谨慎地使用强大和安全的密码,以避免蛮力攻击或任何其他安全漏洞的机会。

你可以使用RandomSecrets 模块,轻松地用Python创建强大而安全的密码。但在这里,我们将使用Secrets 模块,它有助于创建比Random 模块更安全的密码。

密码是如何被入侵的?

蛮力攻击是一种常见的入侵密码的方式。攻击者通过自动软件,在短时间内用许多组合来攻击你的密码。如果密码长度较小,那么在短时间内需要破解的组合就会非常少。密码长度很重要,一般来说,少于12个字符的密码很容易被破解。因此,密码应该足够长。越长,越强。

创建密码的技巧

为了避免暴力攻击,你可以在创建密码时采用一些技巧:

  • 让密码变长:这是最关键的因素。不要选择短于12个字符的密码,如果可能的话要更多。
  • 始终使用混合的字符:尽量混合使用字母(大写和小写)、数字和符号,你的密码就越有效,蛮力攻击就越难破解它。
  • 避免常见的替换:密码破解者在替换方面足够聪明。无论你使用DOORBELL还是D00R8377,暴力攻击者都会同样轻松地破解它。
  • 总是使用数字或特殊字符来完成单词:你可以使用数字和特殊字符来完成密码的某些字,使其更加安全。

用Python创建安全密码

现在我们将使用Python中的StringSecrets 模块创建安全密码。

字符串模块

String 模块是一个内置模块,我们不需要安装它。它是用来处理字符串的。这个模块带有许多有用的函数来处理字符串。我们将使用这个模块中的函数来获取字符串以生成强密码。

秘密模块

Secrets 模块用于生成密码学上的强随机数,适用于管理数据,如密码、账户认证、安全令牌和相关秘密。我们需要使用下面的命令来安装Secrets 模块:

pip install secrets

让我们生成密码

我们将创建Python文件并导入所需模块:

import secrets
import string

导入模块后,我们将定义密码的长度。我们将设置为20个字符的长度,使其更加安全:

passLength = 20

然后,我们将使用String模块函数获得密码字符串。我们将得到所有大小写的ASCII字符所有1-9的整数值所有的特殊字符

lowerLetter = string.ascii_lowercase
upperLetter = string.ascii_uppercase
numbers = string.digits
symbols = string.punctuation

之后,我们将这些字符串连接成一个单一的字符串:

allChar = lowerLetter + upperLetter + numbers + symbols

最后,我们将通过使用secrets.choice() ,并提供单一字符串和密码长度来生成密码:

password = ''.join(secrets.choice(allChar) for i in range(passLength)) 

生成密码的完整代码

import secrets
import string

passLength = 20

lowerLetter = string.ascii_lowercase
upperLetter = string.ascii_uppercase
numbers = string.digits
symbols = string.punctuation

allChar = lowerLetter + upperLetter + numbers + symbols

password = ''.join(secrets.choice(allChar) for i in range(passLength))  

print("\n\nYour password is: "+password+"\n\n")

输出:
当我们运行上述代码时,它将生成如下的随机密码:

Your password is: ?N3XU-<s9~lfDvCoj}%!

在本教程中,你已经了解了密码是如何被入侵的,并知道了创建安全密码的窍门。你还学会了如何使用Python轻松地创建强大而安全的密码。希望你喜欢这个教程,如果你有任何疑虑或问题,请在评论中告诉我。