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搭建虚拟环境的步骤详解
Sep 27 Python
利用Python爬虫给孩子起个好名字
Feb 14 Python
Python中is与==判断的区别
Mar 28 Python
用pycharm开发django项目示例代码
Jun 13 Python
python实现连连看辅助(图像识别)
Mar 25 Python
解析python的局部变量和全局变量
Aug 15 Python
python将四元数变换为旋转矩阵的实例
Dec 04 Python
浅谈Django中的QueryDict元素为数组的坑
Mar 31 Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
Jun 04 Python
Keras模型转成tensorflow的.pb操作
Jul 06 Python
python 逆向爬虫正确调用 JAR 加密逻辑
Jan 12 Python
python中altair可视化库实例用法
Jan 26 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的异常处理类Exception的使用及说明
2012/06/13 PHP
PHP中date与gmdate的区别及默认时区设置
2014/05/12 PHP
PHP+MYSQL会员系统的开发实例教程
2014/08/23 PHP
PHP SPL标准库之接口(Interface)详解
2015/05/11 PHP
浅谈PHP中output_buffering
2015/07/13 PHP
PHP 中常量的知识整理
2017/04/14 PHP
Yii 框架使用Forms操作详解
2020/05/18 PHP
批量实现面向对象的实例代码
2013/07/01 Javascript
关闭时刷新父窗口两种方法
2014/05/07 Javascript
JS显示下拉列表框内全部元素的方法
2015/03/31 Javascript
jQuery多条件筛选如何实现
2015/11/04 Javascript
AngularJS实现给动态生成的元素绑定事件的方法
2016/12/14 Javascript
解决Angular.Js与Django标签冲突的方案
2016/12/20 Javascript
JavaScript中的一些隐式转换和总结(推荐)
2017/12/22 Javascript
小程序tab页无法传递参数的方法
2018/08/03 Javascript
JS document对象简单用法完整示例
2020/01/14 Javascript
JavaScript中break、continue和return的用法区别实例分析
2020/03/02 Javascript
在antd中setFieldsValue和defaultVal的用法
2020/10/29 Javascript
在elementui中Notification组件添加点击事件实例
2020/11/11 Javascript
python3图片转换二进制存入mysql
2013/12/06 Python
python进阶教程之词典、字典、dict
2014/08/29 Python
Python list操作用法总结
2015/11/10 Python
使用Kivy将python程序打包为apk文件
2017/07/29 Python
python3学习笔记之多进程分布式小例子
2018/02/13 Python
python如何创建TCP服务端和客户端
2018/08/26 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
2019/01/04 Python
python中比较两个列表的实例方法
2019/07/04 Python
flask框架jinja2模板与模板继承实例分析
2019/08/01 Python
python multiprocessing模块用法及原理介绍
2019/08/20 Python
python、PyTorch图像读取与numpy转换实例
2020/01/13 Python
pyqt5 textEdit、lineEdit操作的示例代码
2020/08/12 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
2021/03/03 Python
html5 的a标签 Href 拨电话的写法
2013/11/04 HTML / CSS
圣诞节开幕词
2015/01/29 职场文书
仓库管理员岗位职责
2015/02/03 职场文书
Linux中一对多配置日志服务器的详细步骤
2022/07/23 Servers