侯体宗的博客
  • 首页
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

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

Python  /  管理员 发布于 7年前   199

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

我的测试环境,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实现用户登录并且输入错误三次后锁定该用户,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!


  • 上一条:
    人工智能(AI)首选Python的原因解析
    下一条:
    通过抓取淘宝评论为例讲解Python爬取ajax动态生成的数据(经典)
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在python语言中Flask框架的学习及简单功能示例(0个评论)
    • 在Python语言中实现GUI全屏倒计时代码示例(0个评论)
    • Python + zipfile库实现zip文件解压自动化脚本示例(0个评论)
    • python爬虫BeautifulSoup快速抓取网站图片(1个评论)
    • vscode 配置 python3开发环境的方法(0个评论)
    • 近期文章
    • 在go语言中实现字符串可逆性压缩及解压缩功能(0个评论)
    • 使用go + gin + jwt + qrcode实现网站生成登录二维码在app中扫码登录功能(0个评论)
    • 在windows10中升级go版本至1.24后LiteIDE的Ctrl+左击无法跳转问题解决方案(0个评论)
    • 智能合约Solidity学习CryptoZombie第四课:僵尸作战系统(0个评论)
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2018-04
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2022-01
    • 2023-07
    • 2023-10
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客