几乎每个应用程序都需要某种形式的身份验证、密码处理或使用安全凭据(如API密钥)。您可能不是安全专家,但您应该知道如何安全地处理所有这些密码和凭据,以保护应用程序用户的凭据和数据以及您自己的API密钥和各种令牌。
确保这些安全元素的安全包括:生成它们、验证它们、安全地存储它们以及保护它们不受敌人的攻击。因此,在这篇文章中,我们将探索Python库、工具和概念,这些工具和概念将起到同样的作用!
提示密码
让我们简单地开始–您有带有命令行接口的基本Python应用程序。您需要向用户询问密码。你可以用input(),但这将显示终端中的密码,以避免使用getpass相反:
import getpassuser = getpass.getuser()password = getpass.getpass()# Do Stuff...
getpass是一个非常简单的包,它允许您提示用户输入密码,并通过提取当前用户的登录名获取他们的用户名。但是要注意,并不是每个系统都支持隐藏密码。Python将尝试对此发出警告,所以只需在命令行中读取警告即可。
生成
有时,最好生成密码,而不是提示用户输入密码。例如,如果您希望设置第一次登录时更改的初始密码。最后,如果你的时间不是很紧张,并且又想快速的python提高,最重要的是不怕吃苦,建议你可以价位@762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
没有生成密码的库,但实现它并不困难:
import stringimport secretslength = 15
# Choose wide set of characters,
but consider what your system can handlealphabet =
string.ascii_letters + string.digits + string.punctuationpassword = ''
.join(secrets.choice(alphabet)
for i in range(length))
使用上述代码生成的密码将很强,但很难记住。如果它只是一个初始的、临时的密码或短暂的令牌,那么就可以了,但是如果用户应该使用更长的密码,那么使用密码就更合适了。
我们可以像上面使用简单的密码那样构建一个密码生成器,但是如果有可用的库,为什么还要麻烦呢?这个图书馆叫做xkcdpass后著名XKCD关于密码强度,它所做的正是漫画所描述的–产生了由文字组成的强大的密码:
# pip install xkcdpassfrom xkcdpass import xkcd_password as xpword_file =
xp.locate_wordfile()words = xp.generate_wordlist(wordfile=word_file, min_length=5, max_length=10)
for i in range(4):
print(xp.generate_xkcdp