Python实现用户登录并且输入错误三次后锁定该用户

实现用户登录并且输入错误三次后锁定该用户

我的测试环境,win7,python3.5.1

提示输入用户名,和密码

判断是否被锁定

判断用户名和密码是否匹配

输入错误三次,账号被锁定

思路

代码块

name = 'alex'   #正确的用户名
passwd = '123456'  #正确的密码
lock_usr = []   #锁定账号列表

for i in range(0,3):
 usr_name = input("用户名:")
 usr_passwd = input("密码:")
 if usr_name == name and usr_passwd == passwd:
  print("玩命加载中...")
  break
 elif name != usr_name or passwd != usr_passwd:
  if i < 2:
   print("用户名密码错误,请重新输入!")
  else:
   lock_usr.append(usr_name)     #将输入错误三次的的账号添加到锁定列表中
   print("对不起!机会只有三次,您的账号密码被锁定")
 elif usr_name in lock_usr:
  print("该账号已锁定,请解锁后登陆")

PS:下面在通过c#实现密码输入三次错误后锁定用户功能

#region 密码输入三次错误后锁定用户功能
  #region 增加错误次数的方法
  ///<summary>
  ///增加错误次数的方法
  ///</summary>
  private void IncErrorTime()
  {
   string ConnStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
   using (SqlConnection conn = new SqlConnection(ConnStr))
   {
    using (SqlCommand updateCmd = conn.CreateCommand())
    {
     updateCmd.CommandText = "update T_Admin set errortime=errortime+1 whereUsername=@username";
     updateCmd.Parameters.Add(new SqlParameter("username", cmbuserName.Text));
     conn.Open();
     updateCmd.ExecuteNonQuery();
    }
   }
  }
  #endregion
  #region 错误次数清0
  ///<summary>
  ///错误次数清0
  ///</summary>
  private void NotErrorTime()
  {
   string ConnStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
   using (SqlConnection conn = new SqlConnection(ConnStr))
   {
    using (SqlCommand updateCmd = conn.CreateCommand())
    {
     updateCmd.CommandText = "update T_Admin set errortime=0 whereUsername=@username";
     updateCmd.Parameters.Add(new SqlParameter("username", cmbuserName.Text));
     conn.Open();
     updateCmd.ExecuteNonQuery();
    }
   }
  }
  #endregion
  #region 密码错误3次,记录当前时间加30分钟
  ///<summary>
  ///密码错误3次,记录当前时间加30分钟
  ///</summary>
  private void IncLoginTime()
  {
   string ConnStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
   using (SqlConnection conn = new SqlConnection(ConnStr))
   {
    using (SqlCommand updateCmd = conn.CreateCommand())
    {
     updateCmd.CommandText = "update T_Admin set logintime=@logintime whereUsername=@username";
     DateTime logintime = DateTime.Now.AddMinutes(30);
     updateCmd.Parameters.Add(new SqlParameter("username", cmbuserName.Text));
     updateCmd.Parameters.Add(new SqlParameter("logintime", logintime.ToString()));
     conn.Open();
     updateCmd.ExecuteNonQuery();
    }
   }
  }
  #endregion
  #region 按钮事件判断用户登录3次失效后锁定用户30分钟
  private void BtnClike()
  {
   string username = cmbuserName.Text;
   string password = txtPwd.Text;
   string ConnStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
   using (SqlConnection conn = new SqlConnection(ConnStr))
   {
    using (SqlCommand cmd = conn.CreateCommand())
    {
     cmd.CommandText = "select * from T_Admin whereusername=@username";
     cmd.Parameters.Add(new SqlParameter("username", username));
     conn.Open();
     using (SqlDataReader reader = cmd.ExecuteReader())
     {
      if (reader.Read())
      {
       //用户存在
       string dbpassword = reader.GetString(reader.GetOrdinal("password"));
       DateTime logintime = reader.GetDateTime(reader.GetOrdinal("logintime"));
       //判断当前时间是是服务器允许登录时间
       if (logintime > DateTime.Now)
       {
        MessageBox.Show("一定时间内禁止登录");
        return;
       }
       //如果密码正确
       if (dbpassword == txtPwd.Text)
       {
        NotErrorTime();
        MessageBox.Show("登录成功!");
       }
       //如果密码错误
       else
       {
        int errortime = reader.GetInt32(reader.GetOrdinal("errortime"));
        if (errortime >= 2)
        {
         MessageBox.Show("密码错误次数太多!");
         IncLoginTime();
         NotErrorTime();
         return;
        }
        MessageBox.Show("密码错误!");
        IncErrorTime();//密码错误,次数加1
       }
      }
      else//用户名不存在
      {
       MessageBox.Show("用户名不存在!");
       return;
      }
     }
    }
   }
  }
  #endregion
  #endregion

总结

以上所述是小编给大家介绍的Python实现用户登录并且输入错误三次后锁定该用户,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • django实现登录时候输入密码错误5次锁定用户十分钟

    在学习django的时候,想要实现登录失败后,进行用户锁定,切记录锁定时间,在网上找了很多资料,但是都感觉不是那么靠谱,于是乎,我开始了我的设计,其实我一开始想要借助redis呢,但是想要先开发一个简单的,后续在拆分后,然后在去进行拆分, 这样也是很接近我们在真实的开发中所遇到问题. 我的思路是: 输入账号密码>是否已经登录>提示已经登录 输入账号密码>错误次数少于6次>校验密码>登录成功,记录登录时间,错误次数清空,记录登录状态 输入账号密码>错误大于六次>提示

  • 输入密码时检测大写是否锁定的js代码

    主要对 已经激活input框的 大写锁定进行实时检测. 大写锁定已开启 = 65 && keyCode = 97 && keyCode [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

  • 输入密码检测大写是否锁定js实现代码

    这个月都还没.必须要凑数. 网站登录为了更好的用户体验都会在输入密码的时候检测是否开启大写.提醒用户. 在下面的 input框里测试下吧!这段代码来之 <点我>. 不过我做了一点小改进. 主要对 已经激活input框的 大写锁定进行实时检测. 复制代码 代码如下: <div> <input class="text" name="passwd" id="loginPasswd" type="password&

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

    小编给大家带来了用python实现用户多次密码输入错误后,用户锁定的实现方式,以及具体的流程,让大家更好的理解运行的过程. 1.新建一个文件,用以存放白名单用户(正确注册的用户 格式:username:password),再建一个文件,用以存放黑名单用户(输入三次用户名均错误的用户). 2.读取白名单文件,将内容赋值给一个变量,并关闭. 3.将变量以" :"分割,分割出得第一位(索引为0)赋值给username,第二位(索引为1)赋值给password. 4.读取黑名单文件,将内容赋值

  • Android程序开发之防止密码输入错误 密码明文显示功能

    在使用App的时候,首次登录都需要用户输入密码的,有些朋友为了安全起见密码设置的比较长,导致很多次密码都输入错误,严重影响了用户体验效果.这一点移动开发者做好了准备工作,因为手机的私密性比较强,在输入密码的时候,可以显示输入,增强准确性,提升用户体验度.这当然要付出代价的,需要额外的代码编写功能.下面通过本文给大家介绍如何编写密码明文显示的功能,仅供参考. 本文源码的GitHub下载地址 要点 (1) 重写EditText, 添加提示密码显示和隐藏的图片. (2) 判断点击位置, 切换EditT

  • linux(ubuntu)用户连续N次输入错误密码进行登陆时自动锁定X分钟

    1.编辑PAM的配置文件 sudo vim /etc/pam.d/login 在第二行添加 auth required pam_tally2.so deny=3 unlock_time=5 even_deny_root root_unlock_time=10 参数介绍 even_deny_root 也限制root用户: deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户: unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒: root_unl

  • Python实现用户登录并且输入错误三次后锁定该用户

    实现用户登录并且输入错误三次后锁定该用户 我的测试环境,win7,python3.5.1 提示输入用户名,和密码 判断是否被锁定 判断用户名和密码是否匹配 输入错误三次,账号被锁定 思路 代码块 name = 'alex' #正确的用户名 passwd = '123456' #正确的密码 lock_usr = [] #锁定账号列表 for i in range(0,3): usr_name = input("用户名:") usr_passwd = input("密码:&quo

  • python 3.0 模拟用户登录功能并实现三次错误锁定

    Python是一种解释型.面向对象.动态数据类型的高级程序设计语言. Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年. 像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议. Python的3.0版本,常被称为Python 3000,或简称Py3k.相对于Python的早期版本,这是一个较大的升级.为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下兼容. 下面给大

  • Vue项目如何保持用户登录状态(localStorage+vuex刷新页面后状态依然保持)

    目录 前言 一.实现效果 二.实现步骤及涉及要点 三.涉及代码 总结 前言 在前端项目开发中,实现用户的登陆注册功能时常常会有一个问题,那就是我们设置的登录状态,在浏览器页面刷新后就消失了,这其实只是因为我们没有保存用户状态. 这里小马演示使用的是 localStorage + vuex 方法(其他诸如 sessionStorage.cookie 等用法相同,只是功能有所区别). 一.实现效果 实现功能:用户登录成功后,刷新浏览器页面或者关闭浏览器再次打开网页后,登录状态依然保持,直到用户点击登

  • python密码错误三次锁定(实例讲解)

    程序需求: 输入用户名,密码 认证成功显示欢迎信息 输入错误三次后锁定用户 流程图: 好像画的不咋地 查看代码: #!/usr/bin/env python # _*_ coding:utf-8 _*_ # File_type:一个登录接口 # Author:smelond import os username = "smelond"#用户名 password = "qweqwe"#密码 counter = 0#计数器 #读取黑名单 file = os.path.e

  • python3.0 模拟用户登录,三次错误锁定的实例

    python3.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 = i

  • Python基础练习之用户登录实现代码分享

    python版本为python3.5 1.要求 1)输入用户名密码 2)认证成功后显示欢迎信息 3)输错三次后锁定 2.需求分析 1)用户信息存储在文件中(login/config/user_login.txt) 2)用户输入用户名和密码 3)判断用户名是否存在,存在则继续,不存在则提示继续输入 4)判断输入的用户名是否已经被锁定,如果已锁定则退出程序,否则继续 5)匹配文件中的用户信息 6)如果匹配则打印出欢迎信息 7)如果输入3次密码错误,则锁定该用户名(login/config/name_

  • Python实现的用户登录系统功能示例

    本文实例讲述了Python实现的用户登录系统功能.分享给大家供大家参考,具体如下: 有N,E,Q三个选择,若选择Q或者中断,则系统退出.若其他选项,则持续让用户选择. #!/usr/bin/env python db = {} def newuser(): prompt = 'login desired: ' while 1: name = raw_input(prompt) if db.has_key(name): prompt = 'name taken, try another: ' co

  • Python实现用户登录注册

    简单的Python代码:用户登录注册 利用业余时间,写了一个用户进行登录注册的代码,非常简单.主要实现的功能是: 1.可以进行用户登录,在用户进行登录之前,对用户名进行检查,查看是否是已经注册的用户,如果是已经注册的用户,则直接登录:如果是未注册的用户,需要进行注册才可以登录 2.用户名检查:用户名长度为8~18位,不在这个数字范围内的用户名不可以进行登录,字符不限 3.用户密码检查:密码长度为8~18位,不在这个范围内的用户名也是不可以进行注册的,字符不限(其实用户名和密码的长度都是可以自己改

  • Sql Server "用户登录失败,错误编18456"的解决过程

    目录 1.说明 2.其他错误信息 排错分析 总结 Sql Server 解决“用户登录失败,错误编号18456” 1.说明 因密码或用户名错误而使身份验证失败并导致连接尝试被拒时,类似以下内容的消息将返回到客户端:“用户‘<user_name>’登录失败. (Microsoft SQL Server,错误:18456)”. 返回到客户端的其他信息有: “用户‘<user_name>’登录失败. (.Net SqlClient 数据访问接口)” -------------------

  • Python实现用户注册登录程序

    本文实例为大家分享了Python实现用户注册登录程序的具体代码,供大家参考,具体内容如下 要求: 1.支持多个用户登录(把已有的用户名和密码存放在一个文件中,锁定的用户名存放在另一个文件中) 2.输入正确的用户名和密码,则登录成功:密码错误,可以重新输入密码两次:用户名错误,可以重新注册用户名,也可以重新输入用户名和密码. 3.用户名输入正确,密码错误三次后,锁定用户名,退出: 4.输入三次后,退出程序. 代码如下: user_pw=open('username_file','r+',encod

随机推荐