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
抱歉!此帐号已被锁定。
时间: 2024-10-01 12:41:29

python之用户登录三次锁定的相关文章

【Python】用户登录三次锁定

需求说明: 用户登录,对密码进行三次校验,三次均失败后,将锁定用户名,不允许登录. 解决方案: 1.明确可成功登录的用户名和密码: 2.用户黑名单,三次登录失败后,将用户名写入黑名单: 3.检测黑名单的内容,如果与当前登录名一致,则不允许继续输入密码,直接提示用户已锁定. 代码实现: 1 # -*- coding:utf-8 -*- 2 3 #登录三次锁定用户 4 5 #用于计数(循环三次的判断) 6 count = 0 7 8 #真实用户名和密码 9 real_username = "iamx

用户登录三次锁定

实现功能输入三次错误密码后自动锁定,判断用户是否存在和是否已经锁定(中文用户会报错需要进一步改进) #!/usr/bin/env python # _*_ coding:utf-8 _*_ # 文件名:login_v2.py import sys user_file = 'D://PYTHON//practice//userlist' lock_file = 'D://PYTHON//practice//lock' f = open(user_file, 'r+') user_list = f.

【web开发】★☆之基于Map实现(用户登录三次失败后)24小时之内限制登录!

[web开发]★☆之基于Map实现(用户登录三次失败后)24小时之内限制登录! 近期在改一个老项目(struts1做的),客户现在想实现如下效果,用户在登录失败三次之后,锁定用户,需要信息部管理人员进行解锁!我第一想法,是在其数据库User表中加一个字段,记录登录失败的次数,但是数据库添加字段需要远程操作数据库,而对方的数据库又被各种加密软件包围!不是很方便,所以想了一下解决方案,利用Map来进行处理! 首先说一个思路,新建实体类,只有两个属性,登录失败次数,登录时间,实现get,set方法!

python实现用户登录界面

要求 输入用户名密码正确,提示登录成功, 输入三次密码错误,锁定账户. 实现原理: 创建两个文件accout,accout_lock accout记录用户名,密码 accout root 1qazxsw2 wxp qwerty osadmin 123456 accout_lock记录锁定用户,默认为空 代码: #!/use/bin/env python #-*- coding:utf-8 -*- import sys,os import getpass #os.system('clear') i

用户登录三次,禁止登录

1 def menu(): 2 #用户交互界面 3 user_name = input("请输入在用户名:") 4 password = input("请输入密码:") 5 return user_name,password #以元组形式返回值 6 ''' 7 alex 1314 8 ryan 6238 9 egon 1234 10 ''' 11 def write(): 12 #将用户名.密码和登录次数在文件中写成字典的格式 13 user_name_passwo

python作业用户登录_day01

作业要求: 输入用户名和密码 认证成功之后弹出登录欢迎信息 密码输入错误三次锁定账户 思路: 先画流程图,可以吧逻辑搞清楚. 创建了user_file是用户文件,lock_file是被锁用户文件 主程序: 1 #_*_ coding:utf-8 _*_ 2 __author__ = 'zhangkai' 3 print('****************欢迎来到英雄联盟******************') 4 login_user = input('请输入您的账号:') 5 6 lock_f

用户登录限制、锁定与踢出

本文以SSH为例进行PAM配置来实现相应的认证功能,其它的登录方式配置相似,详情可参考文章<PAM - 可插拔认证模块>. 1.限制用户的登录(SSH) (1)使用pam_access自定义限制规则 //新增pam_access模块认证 [[email protected] ~]# vi /etc/pam.d/sshd #%PAM-1.0 account requisite pam_access.so nodefgroup accessfile=/etc/mypam/access_ssh.co

python实时分析用户登录

通过nginx日志 #!/usr/local/bin/python3 # coding:utf-8 # ==================================================== # Author: chang - EMail:[email protected] # Last modified: 2017-5-8 # Filename: nginxanalysis.py # Description: real time analysis nginx log,base

用户登录三次机会(PYTHON)

usename=shabi password=123456 i=3 while i > 0: zh = input("请输入你的用户名:") i - = 1 if zh == usename: lj = input("请输入你的密码:") if lj == password: print("验证成功,正在登录......") print('''恭喜你成功登陆! 欢迎用户进入 usename:%s password:%s ''' %(zh,l