2312123www 发表于 2016-5-26 09:15:01

简单的Python登陆认证小程序

使用Python编写登陆认证小程序、用户连续 3 次输入密码错误即锁定用户。
############# start ###############
#!/usr/bin/env python
import os
import sys
#
os.system('clear')

userfile = file('user_id.txt', 'r+')
userlist = []
userdict = {}


if os.path.isfile("user_id.txt"):
    pass
else:
    print '没有定义用户的文件!'
    sys.exit

#userfile.readlines()
for userline in userfile:
    useritem = userline.strip()
    #生成系统的用户列表
    value_useritem = useritem.split(';')
    #基本判断添加取出
    value_username = value_useritem.strip()
    value_passwd = value_useritem.strip()
    lock_value = int(value_useritem[-1])
    logincount_value = int(value_useritem[-2])
    #生成用户名列表
    userdict = {'name':value_username, 'pwd':value_passwd, 'lockcount':logincount_value, 'locknum':lock_value}

flag = 'Ture'
counter = 0
while flag :
    username = raw_input('请输入用户名:')
    userpasswd = raw_input('请输入密码:')
    #判断是否是系统用户
    if username not in userdict.keys():
      print '这个用户不存在!'
      break
    elif userdict['locknum'] == 0 and userdict['lockcount'] < 3 :
      if userpasswd == userdict['pwd'].strip():
            print '欢迎登陆系统!!!'
            break
      else:
            counter += 1
            userdict['lockcount'] += 1
            userfile = file('user_id.txt', 'w+')
            for t in userdict.values():
                wuserlist = ), str(t['pwd']), str(t['lockcount']), str(t['locknum'])]
            #wuserlist = t.values()
                wuserlist_str = ';'.join(wuserlist)
            #userfile.seek(0)
                userfile.write(wuserlist_str + '\n')
            if counter >2 :
                print '密码输入错误达到3次,退出登陆。'
                break;
    else:
      print '该用户账号已被锁定!'
      sys.exit('请联系管理员解锁!')
    continue;
userfile.close()

############# end ###############

其中,user_id.txt的格式为:
用户名;密码;错误密码次数;管理员手动锁定账户,如下:
# cat user_id.txt
hejp;123;0;0
test;456;0;0


用户hejp输入三次密码错误后,会在user_id.txt里显示错误密码次数为3,此时该用户锁定,只要把它改为0后就能解锁。
# cat user_id.txt
hejp;123;3;0
test;456;0;0

页: [1]
查看完整版本: 简单的Python登陆认证小程序