功能
用户名不存在将会一直提示
密码与用户名不匹配,输错三次用户将被锁定一段时间(为方便测试,设置2分钟)
被锁定的用户登录时会提示该用户已被锁定,还有多久才可以解锁
被锁定的用户已经达到解锁时间将会充重置登录次数
流程图
Python代码
import time
# 常量 最大输入次数、锁定时间
LOGON_MAX_TIMES = 3
LOCK_INTERVAL = 120
# 输入错误次数计算器
counter = 1
# 用户和密码
_user = "frank"
_password = "1234"
# 设置锁定状态
_locked = True
# 设置上次锁定时间
_ticks = 1513693564.658339
while counter < LOGON_MAX_TIMES:
user = input("user:")
password = input("password:")
# 判定用户
if _user == user:
# 判定锁定状态
if _locked:
if time.time() - _ticks < LOCK_INTERVAL:
print("The user is locked!")
break
else:
counter = 0
_locked = not _locked
if not _locked:
if _password == password:
print("logon success!")
break
else:
print("password error!")
counter += 1
else:
print("user doesn't exist!")
if counter == LOGON_MAX_TIMES:
print("logon'times is more than %d times ,The user will be loked %d second" % (LOGON_MAX_TIMES,LOCK_INTERVAL))
_ticks = time.time()