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怎么学好python?
Oct 07 Python
python异常和文件处理机制详解
Jul 19 Python
解决python2.7用pip安装包时出现错误的问题
Jan 23 Python
python技能之数据导出excel的实例代码
Aug 11 Python
不管你的Python报什么错,用这个模块就能正常运行
Sep 14 Python
解决sublime+python3无法输出中文的问题
Dec 12 Python
基于Python对数据shape的常见操作详解
Dec 25 Python
Python分布式进程中你会遇到的问题解析
May 28 Python
对Python3之方法的覆盖与super函数详解
Jun 26 Python
使用pytorch和torchtext进行文本分类的实例
Jan 08 Python
你应该知道的Python3.6、3.7、3.8新特性小结
May 12 Python
Django框架模板用法详解
Jun 10 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连接MongoDB示例代码
2012/09/06 PHP
浅析php中三个等号(===)和两个等号(==)的区别
2013/08/06 PHP
2个Codeigniter文件批量上传控制器写法例子
2014/07/25 PHP
php 函数中静态变量使用的问题实例分析
2020/03/05 PHP
img onload事件绑定各浏览器均可执行
2012/12/19 Javascript
js鼠标滑轮滚动事件绑定的简单实例(兼容主流浏览器)
2014/01/14 Javascript
jQuery实现可编辑的表格实例讲解(2)
2015/09/17 Javascript
老生常谈JavaScript中的this关键字
2016/10/01 Javascript
jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法
2016/11/16 Javascript
jQuery文字轮播特效
2017/02/12 Javascript
微信小程序 下拉列表的实现实例代码
2017/03/08 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
Vue动画事件详解及过渡动画实例
2019/02/09 Javascript
JavaScript剩余操作符Rest Operator详解
2019/07/20 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
2019/11/05 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
2020/08/04 Javascript
JavaScript构造函数原理及实现流程解析
2020/11/19 Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
2020/12/01 Vue.js
python函数局部变量用法实例分析
2015/08/04 Python
Python实现按照指定要求逆序输出一个数字的方法
2018/04/19 Python
Tensorflow使用支持向量机拟合线性回归
2018/09/07 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
python实现简单的单变量线性回归方法
2018/11/08 Python
python 列表递归求和、计数、求最大元素的实例
2018/11/28 Python
使用TensorFlow实现简单线性回归模型
2019/07/19 Python
python 解决flask uwsgi 获取不到全局变量的问题
2019/12/22 Python
使用Puppeteer爬取微信文章的实现
2020/02/11 Python
opencv 形态学变换(开运算,闭运算,梯度运算)
2020/07/07 Python
最新pycharm安装教程
2020/11/18 Python
求职推荐信范文
2013/12/01 职场文书
创建省级文明单位实施方案
2014/02/27 职场文书
公司应聘求职信
2014/06/21 职场文书
欠条格式范本
2015/07/03 职场文书
CSS 制作波浪效果的思路
2021/05/18 HTML / CSS
Python机器学习应用之工业蒸汽数据分析篇详解
2022/01/18 Python
MySQL控制流函数(-if ,elseif,else,case...when)
2022/07/07 MySQL