python输入错误密码用户锁定实现方法


Posted in Python onNovember 27, 2017

小编给大家带来了用python实现用户多次密码输入错误后,用户锁定的实现方式,以及具体的流程,让大家更好的理解运行的过程。

1.新建一个文件,用以存放白名单用户(正确注册的用户 格式:username:password),再建一个文件,用以存放黑名单用户(输入三次用户名均错误的用户)。

2.读取白名单文件,将内容赋值给一个变量,并关闭。

3.将变量以“ :”分割,分割出得第一位(索引为0)赋值给username,第二位(索引为1)赋值给password。

4.读取黑名单文件,将内容赋值给一个变量,并关闭。

5.定义一个变量(t)用于存放用户输入次数,

6.进行循环,当循环次数小于三次时,继续循环,当次数大于三次时,将提示输入次数大于三次,账号被锁定,

再循环中,输入用户名,循环判断用户名是否在黑名单中,如果在,则提示“该账号已经被锁定”,如果不再黑名单中,再白名单中继续判断,如果用户名再名单中,则继续判断密码是否正确。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @lynn
 
# 读取login.user文件,将内容赋值给变量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()

相关实例二(python 3.0 ):

 

# -*- coding:utf-8 -*-
#需求模拟用户登录,超过三次错误锁定不允许登陆
 
 
count = 0
 
#realname passwd
Real_Username = "test"
Real_Password = "test"
 
#读取黑名单的内容
f = open('black_user','r')
lock_file = f.read()
f.close()
 
Username = input('请输入用户名:')
 
#判断输入用户是否在黑名单内,如果在则不允许输入密码
for i in range(1):
 if lock_file == Username:
 print('对不起,您的用户已锁定,暂时不允许使用!')
 exit()
 else:
 continue
 
#尝试输入密码并对输入次数进行计数
for i in range(3):
 Password = input("请输入密码:")
 if Username == Real_Username and Password == Real_Password:
 print("登录成功")
 break
 else:
 print("登录失败")
 count += 1
 
#如果输入三次错误密码,则提示用户名锁定,并将用户名拉黑
if count == 3:
 print("对不起,您输入的密码错误次数已经达到3次,您的用户名将被锁定")
 f = open("black_user","w")
 f.write("%s"%Username)
 f.close()
Python 相关文章推荐
python抓取京东商城手机列表url实例代码
Dec 18 Python
python实现根据主机名字获得所有ip地址的方法
Jun 28 Python
分享一下Python 开发者节省时间的10个方法
Oct 02 Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
Feb 18 Python
Python开发中爬虫使用代理proxy抓取网页的方法示例
Sep 26 Python
python中文分词教程之前向最大正向匹配算法详解
Nov 02 Python
python邮件发送smtplib使用详解
Jun 16 Python
mac下pycharm设置python版本的图文教程
Jun 13 Python
python简易远程控制单线程版
Jun 20 Python
浅谈python写入大量文件的问题
Nov 09 Python
Python读取表格类型文件代码实例
Feb 17 Python
Python jieba结巴分词原理及用法解析
Nov 05 Python
动态规划之矩阵连乘问题Python实现方法
Nov 27 #Python
Python基于贪心算法解决背包问题示例
Nov 27 #Python
Python标准模块--ContextManager上下文管理器的具体用法
Nov 27 #Python
利用信号如何监控Django模型对象字段值的变化详解
Nov 27 #Python
深入理解Python中range和xrange的区别
Nov 26 #Python
PyCharm在win10的64位系统安装实例
Nov 26 #Python
python shell根据ip获取主机名代码示例
Nov 25 #Python
You might like
PHP面向对象概念
2011/11/06 PHP
php魔术函数__call()用法实例分析
2015/02/13 PHP
php简单实现多字节字符串翻转的方法
2015/03/31 PHP
老生常谈PHP位运算的用途
2017/03/12 PHP
php引用和拷贝的区别知识点总结
2019/09/23 PHP
js电信网通双线自动选择技巧
2008/11/18 Javascript
JS 字符串连接[性能比较]
2009/05/10 Javascript
js本身的局限性 别让javascript做太多事
2010/03/23 Javascript
读jQuery之十二 删除事件核心方法
2011/07/31 Javascript
js的.innerHTML = &quot;&quot;IE9下显示有错误的解决方法
2013/09/16 Javascript
一个JavaScript操作元素定位元素的实例
2014/10/29 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
微信小程序 教程之WXSS
2016/10/18 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
2020/03/27 Javascript
详解用vue2.x版本+adminLTE开源框架搭建后台应用模版
2019/03/15 Javascript
解决微信浏览器缓存站点入口文件(IIS部署Vue项目)
2019/06/17 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
vue 实现一个简单的全局调用弹窗案例
2020/09/10 Javascript
[01:02:54]完美世界DOTA2联赛PWL S2 FTD vs GXR 第一场 11.22
2020/11/26 DOTA
web.py在模板中输出美元符号的方法
2014/08/26 Python
python虚拟环境virtualenv的使用教程
2017/10/20 Python
NumPy 基本切片和索引的具体使用方法
2019/04/24 Python
python 解决函数返回return的问题
2020/12/05 Python
用HTML5 Canvas API中的clearRect()方法实现橡皮擦功能
2016/03/15 HTML / CSS
适合各种场合的美食礼品:Harry & David
2016/08/03 全球购物
Spartoo葡萄牙鞋类网站:线上销售鞋履与时尚配饰
2017/01/11 全球购物
int *p=NULL和*p= NULL有什么区别
2014/10/23 面试题
非功能性需求都包括哪些方面
2013/10/29 面试题
安全教育感言
2014/03/04 职场文书
毕业生自荐信格式
2014/03/07 职场文书
中学生关于梦想的演讲稿
2014/08/22 职场文书
家庭贫困证明书(3篇)
2014/09/15 职场文书
人与自然观后感
2015/06/16 职场文书
公司人事管理制度
2015/08/05 职场文书
mongodb清除连接和日志的正确方法分享
2021/09/15 MongoDB