您的位置:首页 > 编程语言 > Python开发

学习python的第一天-模拟用户登录接口,输入错误三次锁定

2019-05-07 23:52 363 查看
版权声明:微信公众号:运维少年 https://blog.csdn.net/c13257595138/article/details/89932207

编写一个模拟登录接口

1、输入用户名密码
2、认证成功后显示欢迎信息
3、连续输入三次后锁定,下次登录时提示用户锁定

效果如下:

[root@VM_145_137_centos day1]# python user.py
Please enter username:admin
Please enter password:123
Please Try enter passwd(1).
Please enter password:123
Please Try enter passwd(2).
Please enter password:admin
Welcome to Linux OS.
[root@VM_145_137_centos day1]#
[root@VM_145_137_centos day1]#
[root@VM_145_137_centos day1]# python user.py
Please enter username:jia
Please enter password:jia
Please Try enter passwd(1).
Please enter password:jia
Please Try enter passwd(2).
Please enter password:jia
Please Try enter passwd(3).
username or passwd error. user jia is lock.
[root@VM_145_137_centos day1]# python user.py
Please enter username:jia
Please enter password:jia
user jia is lock.
[root@VM_145_137_centos day1]#

个人实现思想:

根据ssh办法,用户输入用户名后,让用户输入三次密码(如果每次都输入用户名和密码,判断三次比较难),当三次密码都输入错误时,将用户信息写入一个文本中,并退出程序。下次用户登陆时,输入用户名和密码后,首先查看文本中是否有该用户的记录,如果有,则直接提示用户已被锁定。

实现代码:

#!/usr/bin/env python
import os
i = 0
# 提示用户输入用户名,并去除输入前后的空格符
username = raw_input("Please enter username:").strip()
# 输入密码时进入一个循环,循环三次
for i in range(1,4):
passwd = raw_input("Please enter password:")
# 判断输入的用户名是否被记录,如果被记录,则提示被锁定。os.system里面返回的值为0 或1 ,如果正确执行,为0
lock = os.system("grep %s /root/username 1>/dev/null 2>&1" %(username))
if lock == 0:
print "user %s is lock." %(username)
break
# 判断用户名和密码是否正确,如果只判断用户名,则可能会被试探用户名信息,有安全隐患
if username == 'admin':
if passwd == 'admin':
print "Welcome to Linux OS."
break
else:
print "Please Try enter passwd(%s)." % (i)
else:
print "Please Try enter passwd(%s)." % (i)
i = i + 1
# 超过3次,则提示锁定
if i == 4:
print "username or passwd error. user %s is lock." % (username)
os.system('echo %s >> /root/username' % username)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐