新闻中心

记录成长的每一步,有始有终

python实现登录程序并自动加入与判断黑名单

2018-3-19

网站建设、网站维护托管、排名推广,微信小程序开发,最低380元

本程序实现的功能:

用户名密码保存在文件中,很容易扩展为数据库保存稍加修改就可以实现网络验证

用户名密码文件自动判断不存在就自动创建

用户输入用户名同时就判断是否合法用户

输入非法用户名次数超限自动退出

合法用户密码验证

合法用户密码错误次数超限保护

第一次运行自动创建超级用户root及密码root

奉上代码


# -*- coding: utf-8 -*-
"""
Created on Sat Mar 18 17:05:03 2018

"""
#import sys
import os #导入OS模块
count = 0 #登录3次锁定
user={} #直接创建一个空字典用来存放用户名密码
inname=‘‘ #定义一个空字符串变量接受用户输入用户名
inpawss=‘‘#定义一个空字符串变量接受用户输入用户密码
if os.path.isfile(‘black_user.txt‘):#判断工作目录是否存在黑名单文件
if os.path.isfile(‘user.txt‘):#判断工作目录是否存在用户名密码记录文件
pass
else:
fuser=open(‘user.txt‘,‘w‘) #如果用户名单文件不存在就在工作目录创建一个
fuser.write(‘root root‘)#自动创建超级用户名密码
fuser.close()#关闭打开的文件
else:
f1=open(‘black_user.txt‘,‘w‘) #如果黑名单文件不存在就在工作目录创建一个
f1.close()
#----------------以上内容是程序初始化阶段下面开始登陆验证程序设计----------------
#首先读取用户名密码文件内容到内存
fuser=open(‘user.txt‘,‘r+‘)
for i in fuser:
ii=i.split() #将获得的用户名密码分离
user[ii[0]]=ii[1] #将读取到的系统用户名密码存入字典
#将黑名单读入列表
f3=open(‘black_user.txt‘,‘r+‘)
black=[]
for i in f3:
black.append(i)
f3.close()
#------------------------------准备工作完成,下面是验证逻辑-----------------------
temp=True
count2=0 #统计输入用户名错误次数
while temp:
inname=input("请输入您的用户名:") #请用户输入用户名
if user.get(inname)!=None: #判断用户名是否在系统用户文件中
if inname+‘ ‘ in black: #判断用户名是否在黑名单中
print(‘您输入的用户名已被系统锁定请联系管理员...‘)
count+=1
if count==3: #如果连续3次输入的用户名都被锁定将退出程序
print("连续3次错误系统退出")
temp=False #如果在就继续
else: #如果用户输入的是正常的用户就继续
temp=False #如果在就继续
inpawss=input("请输入您的密码:")
if inpawss==user.get(inname):
print("恭喜您成功登陆...")
temp=False #这里可以增加你想调用的功能
else:
temppass=0 #统计密码输入次数临时变量
while inpawss!=user.get(inname) and temppass<2:
inpawss=input("请重新输入密码:")
temppass+=1
if temppass>=2 and inpawss!=user.get(inname):
print("密码输入次数超限!")
fpass=open(‘black_user.txt‘,‘a+‘)
fpass.write(inname) #将用户输入黑名单锁定防止暴力破解
fpass.write(‘ ‘)
fpass.close()
print(inname+"密码输入错误次数超限已被系统锁定!!!")
elif temppass<=2 and inpawss==user.get(inname):
print("恭喜您成功登陆...")
elif user.get(inname)==None:
count2+=1
print("用户名不存在")
if count2==3:
print("输入次数超限再见!")
temp=False #退出
elif inpawss==user.get(inname):
print("恭喜您成功登陆...")


上一页:什么是子网掩码,云服务器为什么要设置子网掩码?

下一页:手把手教你怎么样入驻微选(微信商城)