
python如何写登录程序
用户关注问题
我想用Python写一个简单的登录程序,验证用户名和密码应该怎么做?
Python基础登录验证示例
可以通过创建一个字典保存用户名和对应密码,输入用户名和密码后进行匹配。例如:
users = {'user1': 'pass1', 'user2': 'pass2'}
username = input('用户名: ')
password = input('密码: ')
if username in users and users[username] == password:
print('登录成功')
else:
print('用户名或密码错误')
我想让登录程序更安全,如何在Python中存储用户密码,而不是明文保存?
使用哈希函数保护密码安全
密码最好使用哈希算法保存,常用的是bcrypt或hashlib中的SHA256。存储哈希后的密码可以防止明文泄露。登录时,将输入密码哈希后与存储的哈希值比较。示例使用bcrypt:
import bcrypt
hashed = bcrypt.hashpw(password.encode(), bcrypt.gensalt())
验证时使用 bcrypt.checkpw(输入密码.encode(), 存储哈希)
想设置登录失败次数限制功能,超过次数后暂时禁用账户,Python怎么实现?
实现登录失败次数限制的逻辑
可以用一个字典记录用户名的失败次数,登录失败时失败次数加一,当达到限制,比如3次,设置账户锁定状态。锁定后需要一定时间后才能尝试登录,或通过管理员解锁。示例:
failed_attempts = {}
限制次数 = 3
if username not in failed_attempts:
failed_attempts[username] = 0
if failed_attempts[username] >= 限制次数:
print('账户锁定,请稍后再试')
else:
# 验证密码逻辑
# 失败时 failed_attempts[username] += 1