python之用户登录三次锁定

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之用户登录三次锁定相关的知识,希望对你有一定的参考价值。

基于文件存储的用户登录程序(3次登录失败,锁定用户)

思路:
1.login.user是存放用户id及密码的文件,也就是白名单;
2.lock.user是存放被锁定的用户id的文档,默认为空,也就是黑名单;
3.程序会先检查输入的用户名是否存在于黑名单中,如果有,则退出,并提示此用户被锁定,否则继续检查白名单;
4.程序先对login.user里的合法用户id进行判断,若连续输入用户id错误达三次程序直接退出;
4.程序最后会对输入的id,对应的密码进行判断,输入密码有3次机会,连续三次错误则会锁定用户id并且退出.
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time
# 读取login.py文件,将内容赋值给变量login_f1,并关闭
f1 = open(login.user,r)
login_f1 = f1.read()
f1.close()

# 将变量login_f1的值,进行分片,分隔符为‘:‘
# 提取第0位元素,赋值给另一个变量ruser
ruser = login_f1.strip().split(":")[0]
# 提取第1位元素,赋值给另一个变量rpwd
rpwd = login_f1.split(":")[1]

# 读取黑名单文件lock.user,将内容赋值给变量lock_f2,并关闭
f2 = open(lock.user,r)
lock_f2 = f2.readlines()
f2.close()

# 定义一个变量,用于计数
t = 0

# 当t小于3时,无限循环。
while t < 3:
    name = input("请输入帐号:")
    for a in lock_f2:
        if name == a:
            print("抱歉!此帐号已被锁定。")
            exit()

    for b in login_f1:
        if name == ruser:
            t = 0
            while t < 3:
                pwd = input("请输入密码:")
                if pwd == rpwd:
                    print("Welcome!%s" %name)
                    exit()
                else:
                    print("Sorry!wrong password.")
                t += 1
            else:
                print("抱歉,错误次数达到3次,该账户被锁定!")
                f = open(lock.user, w)
                f.write(%s % name)
                f.close()
            exit()

 

测试结果:

正确输入:

Your name:jack
Your password:123.com
Welcome!jack

错误输入:

请输入帐号:jack
请输入密码:123
Sorry!wrong password.
请输入密码:123
Sorry!wrong password.
请输入密码:123
Sorry!wrong password.
抱歉,错误次数达到3次,该账户被锁定!

错误输入3次以后:

请输入帐号:jack
抱歉!此帐号已被锁定。

 








以上是关于python之用户登录三次锁定的主要内容,如果未能解决你的问题,请参考以下文章

Python用户登录三次锁定

Python用户登录三次锁定

Python 模拟三次用户登录,登录失败锁定账号并写入文件

python 3.5 用户登录验证和输入三次密码锁定用户

python3.0 模拟用户登录,三次错误锁定

Python之编写登录接口