學習python的第一天-模擬用戶登陸接口,輸入錯誤三次鎖定

編寫一個模擬登陸接口css

一、輸入用戶名密碼
二、認證成功後顯示歡迎信息
三、連續輸入三次後鎖定,下次登陸時提示用戶鎖定python

效果以下:centos

[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 erroruser 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)
相關文章
相關標籤/搜索