Python实现用户登录并且输入错误三次后锁定该用户
实现用户登录并且输入错误三次后锁定该用户
我的测试环境,win7,python3.5.1
提示输入用户名,和密码
判断是否被锁定
判断用户名和密码是否匹配
输入错误三次,账号被锁定
思路
代码块
name='alex'#正确的用户名 passwd='123456'#正确的密码 lock_usr=[]#锁定账号列表 foriinrange(0,3): usr_name=input("用户名:") usr_passwd=input("密码:") ifusr_name==nameandusr_passwd==passwd: print("玩命加载中...") break elifname!=usr_nameorpasswd!=usr_passwd: ifi<2: print("用户名密码错误,请重新输入!") else: lock_usr.append(usr_name)#将输入错误三次的的账号添加到锁定列表中 print("对不起!机会只有三次,您的账号密码被锁定") elifusr_nameinlock_usr: print("该账号已锁定,请解锁后登陆")
PS:下面在通过c#实现密码输入三次错误后锁定用户功能
#region密码输入三次错误后锁定用户功能 #region增加错误次数的方法 //////增加错误次数的方法 /// privatevoidIncErrorTime() { stringConnStr=ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString; using(SqlConnectionconn=newSqlConnection(ConnStr)) { using(SqlCommandupdateCmd=conn.CreateCommand()) { updateCmd.CommandText="updateT_Adminseterrortime=errortime+1whereUsername=@username"; updateCmd.Parameters.Add(newSqlParameter("username",cmbuserName.Text)); conn.Open(); updateCmd.ExecuteNonQuery(); } } } #endregion #region错误次数清0 //////错误次数清0 /// privatevoidNotErrorTime() { stringConnStr=ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString; using(SqlConnectionconn=newSqlConnection(ConnStr)) { using(SqlCommandupdateCmd=conn.CreateCommand()) { updateCmd.CommandText="updateT_Adminseterrortime=0whereUsername=@username"; updateCmd.Parameters.Add(newSqlParameter("username",cmbuserName.Text)); conn.Open(); updateCmd.ExecuteNonQuery(); } } } #endregion #region密码错误3次,记录当前时间加30分钟 //////密码错误3次,记录当前时间加30分钟 /// privatevoidIncLoginTime() { stringConnStr=ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString; using(SqlConnectionconn=newSqlConnection(ConnStr)) { using(SqlCommandupdateCmd=conn.CreateCommand()) { updateCmd.CommandText="updateT_Adminsetlogintime=@logintimewhereUsername=@username"; DateTimelogintime=DateTime.Now.AddMinutes(30); updateCmd.Parameters.Add(newSqlParameter("username",cmbuserName.Text)); updateCmd.Parameters.Add(newSqlParameter("logintime",logintime.ToString())); conn.Open(); updateCmd.ExecuteNonQuery(); } } } #endregion #region按钮事件判断用户登录3次失效后锁定用户30分钟 privatevoidBtnClike() { stringusername=cmbuserName.Text; stringpassword=txtPwd.Text; stringConnStr=ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString; using(SqlConnectionconn=newSqlConnection(ConnStr)) { using(SqlCommandcmd=conn.CreateCommand()) { cmd.CommandText="select*fromT_Adminwhereusername=@username"; cmd.Parameters.Add(newSqlParameter("username",username)); conn.Open(); using(SqlDataReaderreader=cmd.ExecuteReader()) { if(reader.Read()) { //用户存在 stringdbpassword=reader.GetString(reader.GetOrdinal("password")); DateTimelogintime=reader.GetDateTime(reader.GetOrdinal("logintime")); //判断当前时间是是服务器允许登录时间 if(logintime>DateTime.Now) { MessageBox.Show("一定时间内禁止登录"); return; } //如果密码正确 if(dbpassword==txtPwd.Text) { NotErrorTime(); MessageBox.Show("登录成功!"); } //如果密码错误 else { interrortime=reader.GetInt32(reader.GetOrdinal("errortime")); if(errortime>=2) { MessageBox.Show("密码错误次数太多!"); IncLoginTime(); NotErrorTime(); return; } MessageBox.Show("密码错误!"); IncErrorTime();//密码错误,次数加1 } } else//用户名不存在 { MessageBox.Show("用户名不存在!"); return; } } } } } #endregion #endregion
总结
以上所述是小编给大家介绍的Python实现用户登录并且输入错误三次后锁定该用户,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。