用户登录三次,禁止登录

 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_password= {}#设置一个空字典装用户名、密码和登录次数
14     with open("test", encoding="utf8") as date, open("test2", encoding="utf8", mode="w") as revise:
15         for line in date:
16             line1 = line.strip().split()  #以空格分隔后是列表形式
17             user_name_password.setdefault(line1[0],[line1[1],0])#key值为用户名,value值为[密码,登录次数]
18         user_name_password = str(user_name_password)    #将字典转换成字符串
19         revise.write(user_name_password)   #将字典转换成的字符串写入文件test2
20
21
22 def main():
23     write() #
24     while True:
25         res = menu()#用户名和密码输入,返回值为元组形式(用户名,密码)
26         with open("test2",encoding="utf8") as date:
27             user_name_password = {}  #创建一个空字典,接收用户、密码和登录次数的的数据
28             for line in date:
29                 user_name_password = eval(line) #将用户、密码和登录次数数据转化为字典
30             if res[0] in user_name_password and user_name_password[res[0]][1] == 3:
31                 #文件中登录名已记录三次,禁止登录
32                 print("登录次数过多锁定")
33                 break
34             if res[0] in user_name_password and res[1] in user_name_password[res[0]][0] and user_name_password[res[0]][1] < 3:
35                 #用户、密码匹配成功和登录次数小于三次,登录成功
36                 print("successful")
37                 break
38             if res[0] in user_name_password and res[1] not in user_name_password[res[0]][0]:
39                 #用户匹配,密码不匹配,拉入黑名单,登录次数+1
40                 user_name_password[res[0]][1]=user_name_password[res[0]][1]+1    #登录次数+1
41                 user_name_password.setdefault(res[0],user_name_password[res[0]][1])  #将字典中登录次数的信息进行修改
42                 user_name_password = str(user_name_password)   #将字典转换成字符串
43                 with open("test3", encoding="utf8", mode="w") as revise:
44                     revise.write(user_name_password)  #匹配不成功,将信息写入文件
45                 date.close()   #改文件名需关闭文件
46                 revise.close() #关闭文件需关闭文件
47                 import os
48                 os.rename("test2", "test_bak")
49                 os.rename("test3", "test2")
50                 os.remove("test_bak")  #删除费文件
51                 print("用户名或者密码错误,请重新输入")
52             else:
53                 print("用户名或者密码错误,请重新输入")
54 main()
时间: 2024-08-02 01:57:31

用户登录三次,禁止登录的相关文章

python 登录三次禁止登录

#! /usr/bin/python # coding:utf-8 "' 主要需求是 登录密码错误三次,禁止登录 设计如下 1,先定义一个用户名和密码 2,定义一个黑名单,用来存放超过三次的用户名 3,获取用户的输入的用户名 4,首先判断这个用户是否存在黑名单中,如果有,提示有,并且无条件退出 5,如果黑名单中没有,将进行三次密码校验 作者 琦琦爸爸 '" # 定义字符串一定要加双引号 real_name="czb" real_pwd=123456 # 如果读写的模

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

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

【Python】用户登录三次锁定

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

Linux 禁止用户或 IP通过 SSH 登录

限制指定用户通过指定IP SSH 登录 1.只允许指定用户进行登录(白名单): 在 /etc/ssh/sshd_config 配置文件中设置 AllowUsers 选项,(配置完成需要重启 SSHD 服务)格式如下: AllowUsers aliyun [email protected] # 允许 aliyun 和从 192.168.1.1 登录的 test 帐户通过 SSH 登录系统. 2.只拒绝指定用户进行登录(黑名单): 在/etc/ssh/sshd_config配置文件中设置DenyUs

JavaEE之--------利用过滤器实现用户自动登录,安全登录,取消自动登录黑用户禁止登录

在我们生活中,对于账户的自动登录已经很常见了,所以利用过滤器实现这个功能 主要介绍用户的自动登录和取消自动登录,以及实现一天自动登录或者n天实现自动登录,当用户ip被加入到黑名单之后,直接利用过滤器返回一个警告页面. 过滤器的功能很是强大,我们只需要在写好的前台后servlet之后进行添加就可以实现这个功能 Ps:这个仅仅只是一个演示而已,里面的访问数据库的部分,自己随意模拟了下,主要是突出实现自动登录的功能. 前台代码: 前台代码是成功与否都在这个页面显示.用到的技术:jstl标签的应用,se

&lt;实训|第三天&gt;Linux登录界面的修改以及Richard Stallman、自由软件运动

在写博客之前我想说两点: 承认一个错误,昨天写的实训第二天,我把redhat6.7写成了Linux6.7,感谢热心人士的指出! 昨天写的文章名字太长了,今天改善,内容感觉表述不全,希望各位谅解! 官方跟我说的是安装配置类的文章不能放进首页中,今天虽然有一点,但是主体部分还是对GUN.Linux和TCP/IP以及IP的认识. 期待已久的linux运维.oracle"培训班"终于开班了,我从已经开始长期四个半月的linux运维.oracle培训,每天白天我会好好学习,晚上回来我会努力更新教

scala实战之spark用户在线时长和登录次数统计实例

接触spark后就开始学习scala语言了,因为有一点python和java的基础学习起来还行,今天在这里把我工作中应用scala编程统计分析用户行为日志的实例和大家分析一下,我这里主要讲一下用户的在线时长统计和登录次数统计算法实现过程. 第一步 编程环境:首先你得有spark安装包 你可以先不用本地安装spark,但是可以通过import spark-assembly-1.6.2-hadoop2.6.0.jar包来完成程序调试 另外需要scala的运行环境,我用的版本:scala-sdk-2.

SSO单点登录三种情况的实现方式详解

单点登录(SSO——Single Sign On)对于我们来说已经不陌生了.对于大型系统来说使用单点登录可以减少用户很多的麻烦.就拿百度来说吧,百度下面有很多的子系统——百度经验.百度知道.百度文库等等,如果我们使用这些系统的时候,每一个系统都需要我们输入用户名和密码登录一次的话,我相信用户体验肯定会直线下降.当然,对于个人博客这类系统来说根本就用不上单点登录了. 假如,我们的系统很庞大,但是就是这一个系统,并没有什么子系统.这时我们也不需要单点登录.我们需要的是搭建集群环境,这里虽说只有一个系

用户 &#39;NT AUTHORITY\NETWORK SERVICE&#39; 登录失败。

第一步:把'NT AUTHORITY\NETWORK SERVICE' 添加到Administrator组中 我的电脑-->右键-->管理-->本地用户和组 选择"组"-->双击Administrators-->单击"添加"-->单击"高级"-->单击"立即查找"-->在下面的列表中选择Network Service用户-->两次单击"确定"-->