linux python模拟登陆_Python模拟用户登录接口

目标

同一个用户名连续失败三次则锁定,不管用户名是否在,锁定后在下次运行脚本登录是同样是锁定状态。

使用文件存储用户名和密码信息,与文件里面的用户名密码进行认证对比

用户名不存在和密码错误提示不可以相同,登录成功,账号被禁用,密码错误,用户不存在需要有相关的提示信息。

Python脚本

#!/usr/bin/python

#coding:utf8

class Login():

def userInfo(self):

#将用户名密码信息文件处理成一个字典

with open("userinfo.txt", "r") as file:

userDict = {}

for i in file:

userList = i.split(":")

userDict.update({userList[0]:userList[1].rstrip()})

return userDict

def lock_userInfo(self):

#将否定的用户的文件处理成一个列表

with open("lock_userinfo.txt", "r") as file:

userList = []

for i in file:

userList.append(i.rstrip())

return userList

def lockUser(self, username):

#如果相同用户登录错误三次就调用此函数,将用户永久琐定,写入文件

with open("lock_userinfo.txt", "a") as file:

file.write(username + "\n")

def userLogin(self):

#登录

lockList = []

while True:

username = raw_input("请输入用户名: ")

password = raw_input("请输入用户密码: ")

if lockList.count(username) < 3:

lock = self.lock_userInfo()

user = self.userInfo()

if username not in lock:

if username in user:

if user[username] == password:

print("登录成功")

else:

lockList.append(username)

print("密码错误")

else:

lockList.append(username)

print("用名不存在")

else:

print("此用户已禁用")

else:

self.lockUser(username)

print("用户登录次数超过限制,已禁用")

if __name__ == "__main__":

login = Login()

login.userLogin()

脚本说明

1. 首先需要在脚本所在的目录下面创建两个文件lock_userinfo.txt和userinfo.txt。

2. userinfo.txt存入用户信息,一行一个用户,用户名和密码用冒号分开,不要有空格,如下所示。

3. lock_userinfo.txt为被否定的用户列表文件,初始为空,如果有同一用户登录出错三次就会被永久写入该文件,无法登录,解锁用户就是删除该文件里面的用户名。

执行结果

正确登录结果如下。

密码输入错误三次结果如下。

用户被琐后再登录结果如下。

用户名输入错误多次后结果如下。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值