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

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

作者: 运维少年 | 来源:发表于2019-05-07 23:49 被阅读0次

    编写一个模拟登录接口

    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)
    
    

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/ubtpoqtx.html