Python中的安全密码处理,非常重要!知道这些黑客也奈何不了你!

几乎每个应用程序都需要某种形式的身份验证、密码处理或使用安全凭据(如API密钥)。您可能不是安全专家,但您应该知道如何安全地处理所有这些密码和凭据,以保护应用程序用户的凭据和数据以及您自己的API密钥和各种令牌。

确保这些安全元素的安全包括:生成它们、验证它们、安全地存储它们以及保护它们不受敌人的攻击。因此,在这篇文章中,我们将探索Python库、工具和概念,这些工具和概念将起到同样的作用!

提示密码

让我们简单地开始--您有带有命令行接口的基本Python应用程序。您需要向用户询问密码。你可以用input(),但这将显示终端中的密码,以避免使用getpass相反:

import getpass

user = getpass.getuser()
password = getpass.getpass()
# Do Stuff...

getpass是一个非常简单的包,它允许您提示用户输入密码,并通过提取当前用户的登录名获取他们的用户名。但是要注意,并不是每个系统都支持隐藏密码。Python将尝试对此发出警告,所以只需在命令行中读取警告即可。

生成

有时,最好生成密码,而不是提示用户输入密码。例如,如果您希望设置第一次登录时更改的初始密码。

没有生成密码的库,但实现它并不困难:

import string
import secrets

length = 15
# Choose wide set of characters, but consider what your system can handle
alphabet = string.ascii_letters + string.digits + string.punctuation
password = ''.join(secrets.choice(alphabet) for i in range(length))

使用上述代码生成的密码将很强,但很难记住。如果它只是一个初始的、临时的密码或短暂的令牌,那么就可以了,但是如果用户应该使用更长的密码,那么使用密码就更合适了。

我们可以像上面使用简单的密码那样构建一个密码生成器,但是如果有可用的库,为什么还要麻烦呢?这个图书馆叫做xkcdpass后著名XKCD关于密码强度,它所做的正是漫画所描述的--产生了由文字组成的强大的密码:

# pip install xkcdpass
from xkcdpass import xkcd_password as xp

word_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_xkcdpassword(words, acrostic="python", numwords=6, delimiter="
  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python是世界上最好的语言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值