[Python3.x]多次登陆锁定用户
要求:
输入用户名,密码
认证成功显示欢迎信息
输入错误三次后锁定用户
Readme:
1.account.txt是存放用户id及密码的文件
2.account_loc.txt是存放被锁定的用户id的文档,默认为空.
3.程序会对account.txt里的合法用户id进行判断,若连续输入用户id错误达三次程序直接退出.
4.程序会输入对正确用户名后的密码进行判断,输入密码有3次机会,连续三次错误则会锁定用户id并且退出.
流程图:
代码实现:
版本1:输入写死的用户名密码
#写死了用户名密码,输入错误三次退出,或者成功登陆 user = "Amy" passwd=" i=0 while i < 3: name = input("Please in put username:\n") #写入用户名 key = input("Please input password:\n") #写入用户密码 if name == user and passwd == key: #判断用户名和用户密码是否和预期一致 print("Welcome!") #如果一致,返回欢迎界面,登陆成功! break #退出所有循环,如果没有这个就是退出单层循环,会返回输入用户名这个 else: i = i + 1 #如果用户名或者密码不一致,计数器加一 if i<3: #如果计数器小于3,就是说等于1,或者2次输入错误,返回重新输入 print("Error username or password,Please input again!\n") else: print("Too many times error !")
最终版本:加入文件读写
i=0 while i<3: #设置如果输入三个用户名都无法登录成功,算尝试过多,失败退出 user = input("请输入用户名:") i=i+1 #对用户名输入次数做限制 lock_file=open("account_lock.txt","r+")#打开记录锁定用户名的文件,查看该用户是否被锁定,如果是,退出,不是进入下一步 lock_list = lock_file.readlines() #按照list循环读取锁定用户名的文件 for lock_line in lock_list: #循环读取锁定用户名的文件内容 lock_line=lock_line.strip("\n")#去掉换行符 if user in lock_line:#判断用户输入用户名存在锁定用户名的文件中 print("用户 %s 已经被锁定,退出" % user) exit()#退出 # lock_file.close() f=open("account.txt","r+") #打开存放用户名密码的文件(已存在的) account_list=f.readlines() #对用户名密码文件进行遍历 for user_line in account_list: (username,password)=user_line.strip('\n').split(" ")#获取用户名、密码列表 if user == username:#判断用户输入用户名是否在文件中存在,是进行下一步 # print(username,password) j=0#设置计数器,对密码输入次数做限制 while j <3:#输入密码次数小于三次就进行循环 key =input("请输入用户密码:")#输入密码 if key == password: print("恭喜你,用户%s 登陆成功!" %user) #密码正确,提示欢迎登录 exit()#退出程序 else:#密码输入错误的提示 if j<2:#如果密码输入第一次错误,第二次错误,提示还有n-1次机会并且回到内循环头,重新输入密码 print("用户 %s 密码输入错误,您还有%s 次机会,请重新输入:"%(user,2-j)) j =j+1 #密码输入次数计数器 else:#同一用户,输入错误密码达到三次 lock_file.write(user +"\n")#将用户名写入锁定文件,并提示 print("用户 %s 达到最大登录次数,将被锁定并退出"%user) exit()#退出登陆程序 else:#当用户没有匹配,继续循环,找,直到遍历account_list pass else:#用户名和密码不存在用户密码文件,显示提示,用户不存在 print("用户 %s 不存在,请重新输入"%user) else:#i>=3,输入三次错误用户 print("尝试次数过多,退出登陆!") lock_file.close()#关闭锁定用户文件 f.close()#关闭用户名密码文件
结果演示:
1、三次错误用户名:
2、三次错误密码:
3、锁定用户:
[Python3.x]多次登陆锁定用户的更多相关文章
- Python作业之三次登陆锁定用户
作业之三次登陆锁定用户 作业要求如下: 1. 输入用户名和密码 2. 认证成功提示欢迎信息 3. 认证失败三次锁定用户 具体代码如下: 方法1: import os#导入os模块 if os.path ...
- Centos 用户登录失败N次后锁定用户禁止登陆
针对linux上的用户,如果用户连续3次登录失败,就锁定该用户,几分钟后该用户再自动解锁 Linux有一个pam_tally2.so的PAM模块,来限定用户的登录失败次数,如果次数达到设置的阈值,则锁 ...
- Centos7下用户登录失败N次后锁定用户禁止登陆的方法
前言 针对linux上的用户,如果用户连续3次登录失败,就锁定该用户,几分钟后该用户再自动解锁.Linux有一个pam_tally2.so的PAM模块,来限定用户的登录失败次数,如果次数达到设置的阈值 ...
- python 3.5 用户登录验证和输入三次密码锁定用户
#!/usr/bin/env python #encoding: utf-8 #登录程序,输入用户和密码输出欢迎信息,输入错误三次锁定用户,不让登录 import sys print (''' 欢迎登 ...
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2-新增锁定用户与解除锁定用户的功能
锁定用户功能在现实应用场景中得到了大量的应用,当我们需要限制某用户的登录,又不能删除这个用户时就可以使用锁定功能,如:未授权的用户尝试错误密码错误过多可以尝试的用户进行锁定,又如ATM机上取钱时密码错 ...
- linux尝试登录失败后锁定用户账户的两种方法
linux尝试登录失败后锁定用户账户的两种方法 更新时间:2017年06月23日 08:44:31 作者:Carey 我要评论 这篇文章主要给大家分享了linux尝试登录失败后锁定用户账 ...
- 转:通过ASP.Net页面获取域用户名(当前登陆的用户)
通过ASP.Net页面获取域用户名(当前登陆的用户) 原文地址: https://www.cnblogs.com/fast-michael/archive/2011/03/14/2057954.htm ...
- Linux vfpd锁定用户目录
在linux ftp配置中,为了防止用户cd 到其他目录,需要锁定用户的根目录. Step1:修改配置文件 [root@ess ~]# vi /etc/vsftpd/vsftpd.conf #chro ...
- struts2使用拦截器完成登陆显示用户信息操作和Struts2的国际化
其实学习框架,就是为了可以很好的很快的完成我们的需求,而学习struts2只是为了替代之前用的servlet这一层,框架使开发更加简单,所以作为一个小菜鸟,特别感谢那些超级无敌变态开发的框架供我们使用 ...
随机推荐
- 全链路实践Spring Cloud 微服务架构
Spring Cloud 微服务架构全链路实践Spring Cloud 微服务架构全链路实践 阅读目录: 网关请求流程 Eureka 服务治理 Config 配置中心 Hystrix 监控 服务调用链 ...
- angular里forRoot的作用
模块A是这样定义的 @NgModule({ providers: [AService], declarations: [ TitleComponent ], exports: [ TitleCompo ...
- webConfig详细跳转配置.[转]
站更换域名,把旧域名用301指到新域名来. 从iis中设置url永久转向就可以,看上去很容易,用了一会儿才发现,参数都没有带上. 从微软网站上找到如下说明,果然好使: 重定向参考 (IIS 6.0,7 ...
- App上线流程全攻略(史上最具体步骤)
@转载请保留:iOS界一迷糊小书童--->专注于iOS开发!!谢谢合作 /*****************************************1****************** ...
- 20165214 2018-2019-2 《网络对抗技术》Exp6 信息搜集与漏洞扫描 Week9
<网络对抗技术>Exp6 信息搜集与漏洞扫描 Week9 一.实验目标与内容 1.实践目标 掌握信息搜集的最基础技能与常用工具的使用方法. 2.实践内容 (1)各种搜索技巧的应用 使用搜索 ...
- kettle maven 配置
<properties> <kettle.version>6.1.0.4-225</kettle.version> </properties> < ...
- 嵌入式 Linux 学习 之路
1. 嵌入式 Linux (首先百度了一下) 结果没有 看到 有信息的内容.2017年2月17日10:06:51 (嵌入式Linux 英文名:embedded Linux 简称 eLinux,Git ...
- 课时22.br标签(掌握)
br标签,如何在html中换行,可以使用br标签 1.br标签的作用:换行 2.br标签的格式:<br> 3.br标签的注意点: 3.1多个br标签可以连续使用,使用了多个br标签就会换多 ...
- Javascript混淆与解混淆的那些事儿
像软件加密与解密一样,javascript的混淆与解混淆同属于同一个范畴.道高一尺,魔高一丈.没有永恒的黑,也没有永恒的白.一切都是资本市场驱动行为,现在都流行你能为人解决什么问题,这个概念.那么市场 ...
- word 或者 WPS 使用两个目录的时候去掉中间的空格间隙
在生成图表目录时,发现Office word图表目录中多个标题之间的空行无法删除,我是自己建的标签,比如“图1-”.“图2-”…….“表1-”.“表2-”…… 发现“图1-”.“图2-”…….“表1- ...