python輸入錯誤密碼使用者鎖定

專注的阿熊發表於2020-03-18

給大家帶來了用python實現使用者多次密碼輸入錯誤後,使用者鎖定的實現方式,以及具體的流程,讓大家更好的理解執行的過程。


1.新建一個檔案,用以存放白名單使用者(正確註冊的使用者 格式:username:password),再建一個檔案,用以存放黑名單使用者(輸入三次使用者名稱均錯誤的使用者)。


2.讀取白名單檔案,將內容賦值給一個變數,並關閉。


3.將變數以“ :”分割,分割出得第一位(索引為0)賦值給username,第二位(索引為1)賦值給password。


4.讀取黑名單檔案,將內容賦值給一個變數,並關閉。


5.定義一個變數(t)用於存放使用者輸入次數,


6.進行迴圈,當迴圈次數小於三次時,繼續迴圈,當次數大於三次時,將提示輸入次數大於三次,賬號被鎖定,


再迴圈中,輸入使用者名稱,迴圈判斷使用者名稱是否在黑名單中,如果在,則提示“該賬號已經被鎖定”,如果不再黑名單中,再白名單中繼續判斷,如果使用者名稱再名單中,則繼續判斷密碼是否正確。


#!/usr/bin/env python

# -*- coding:utf-8 -*-

# @lynn

  

# 讀取login.user檔案,將內容賦值給變數login_f1,並關閉

f1 = open('login.user','r')

login_f1 = f1.read()

f1.close()

  

# 將變數login_f1的值,分隔符為‘:‘

# 提取第0位元素,賦值給另一個變數ruser

ruser = login_f1.strip().split(":")[0]

# 提取第1位元素,賦值給另一個變數rpwd

rpwd = login_f1.split(":")[1]

  

# 讀取黑名單檔案lock.user,將內容賦值給變數lock_f2,並關閉

f2 = open('lock.user','r')

lock_f2 = f2.readlines()

f2.close()

  

# 定義一個變數,用於計數

t = 0

  

# 當t小於3時,無限迴圈。

while t < 3:

  name = input("請輸入帳號:")

  for a in lock_f2:

    if name == a:

      print("抱歉!此帳號已被鎖定。")

      exit()

  for b in login_f1:

    if name == ruser:

      t = 0

      while t < 3:

        pwd = input("請輸入密碼:")

        if pwd == rpwd:

          print("Welcome!%s" %name)

          exit()

        else:

          print("Sorry!wrong password.")

        t += 1

      else:

        print("抱歉,錯誤次數達到3次,該賬戶被鎖定!")

        f = open('lock.user', 'w')

        f.write('%s' % name)

        f.close()

      exit()


相關例項二(python 3.0 ):


# -*- coding:utf-8 -*-

MT5問題彙總

#需求模擬使用者登入,超過三次錯誤鎖定不允許登陸

  

  

count = 0

  

#realname passwd

Real_Username = "test"

Real_Password = "test"

  

#讀取黑名單的內容

f = open('black_user','r')

lock_file = f.read()

f.close()

  

Username = input('請輸入使用者名稱:')

  

#判斷輸入使用者是否在黑名單內,如果在則不允許輸入密碼

for i in range(1):

 if lock_file == Username:

 print('對不起,您的使用者已鎖定,暫時不允許使用!')

 exit()

 else:

 continue

  

#嘗試輸入密碼並對輸入次數進行計數

for i in range(3):

 Password = input("請輸入密碼:")

 if Username == Real_Username and Password == Real_Password:

 print("登入成功")

 break

 else:

 print("登入失敗")

 count += 1

  

#如果輸入三次錯誤密碼,則提示使用者名稱鎖定,並將使用者名稱拉黑

if count == 3:

 print("對不起,您輸入的密碼錯誤次數已經達到3次,您的使用者名稱將被鎖定")

 f = open("black_user","w")

 f.write("%s"%Username)

 f.close()


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2681222/,如需轉載,請註明出處,否則將追究法律責任。

相關文章