Python 模拟系统登陆接口

Python 模拟登陆-验证用户名和密码

1. 如果输入错误,则输出用户名或密码错误;

2. 如果成功,则输出欢迎,xxx!

3. 三分钟内累计错误三次默认用户被锁, 三分钟后自动解锁继续验证。

简单代码如下:

import getpass

import datetime

user_pwd_dict = {}

user_login_sum_dict = {}

with open(‘user_pwd‘, ‘r‘) as  obj:  # 读取用户名密码文件(文件格式在本文底);

while True:  # 无限循环,当输入用户名和密码均正确方可退出循环;

name = input("\nplease input your username:")

pwd = getpass._raw_input("please input your password:")

for line in obj:  # 遍历文件读出用户名和密码,生成 user_pwd_dict 列表;

new_line = line.strip(‘\n‘)

line_list = new_line.split(‘ ‘)

user_pwd_dict[line_list[0]] = line_list[1]

if name in user_pwd_dict.keys():  # 1.1  判断用户名,如果用户名存在执行以下

if pwd == user_pwd_dict[name]:     # 2.1  判断密码且密码正确

if name in user_login_sum_dict.keys() and

user_login_sum_dict.get(name)[0]==1:

# 3.1 判断用户输错次数,如果是3次,提示被锁

end_time=datetime.datetime.now()

dif_time = (end_time-start_time).seconds

if dif_time < 180: # 4.1 判断被锁时间间隔,如果不超过3分钟

(180s)则提示被锁(为方便测试可将时间缩短)

print(‘该用户 %s 超过允许次数3次被锁,请稍后重试‘ % name)

else:            # 4.2 如果超过3分钟(180s)则提示登录成功并退出程序

print(‘\n   welcome %s‘ % name)

break

else:           # 3.2 如果密码正确且未被锁定则提示登录成功并退出程序

print(‘\n   welcome %s‘ % name)

break

else:                              # 2.2 密码错误执行以下

if  name in user_login_sum_dict.keys(): # 5.1 判断用户名是否在被锁字典中

if user_login_sum_dict.get(name)[0]==1: # 6.1 判断用户输错次数,

如果是3次执行以下

end_time=datetime.datetime.now()

dif_time = (end_time-start_time).seconds

if dif_time < 180:  # 7.1 输错达3次且不超3分钟(180s)提示被锁,

继续循环(为方便测试可将时间缩短)

print(‘该用户 %s 超过允许次数3次被锁,请稍后重试‘ % name)

else:               # 7.2 输错达3次超过3分钟(180s),

提示密码错误并重新赋值,继续循环

print(‘\n   password isn`t right‘)

start_time = datetime.datetime.now()

user_login_sum_dict[name]=[0,start_time]

print(user_login_sum_dict[name])

else:                           # 6.2 用户输错3次以内,则执行以下

end_time=datetime.datetime.now()

dif_time = (end_time-start_time).seconds

if dif_time < 180:  # 8.1 用户输错3次以内并在3分钟以内,

提示密码错误并累计错误次数加1次,继续循环

print(‘\n   password isn`t right‘)

user_login_sum_dict[name][0]+=1

else:              # 8.2 用户输错3次以内并超过3分钟,

提示密码错误并重新赋值,继续循环

print(‘\n   password isn`t right‘)

start_time = datetime.datetime.now()

user_login_sum_dict[name]=[0,start_time]

print(user_login_sum_dict[name])

else:                           # 5.2  如果用户名未在被锁字典中则提示

密码不对且赋初始值,继续循环

print(‘\n   password isn`t right‘)

start_time = datetime.datetime.now()

user_login_sum_dict[name]=[0,start_time]

print(user_login_sum_dict[name])

else: # 1.2 如果用户名不在字典中则提示用户名不存在,继续循环

print(‘\n   this username doesn`t exist!‘)

-----------------------用户名密码文件格式如下------------------------

注:水平有限,本博文如有考虑不到之处还请多多指教共同学习,谢谢。

时间: 2024-08-02 00:54:19

Python 模拟系统登陆接口的相关文章

使用 Python 编写登陆接口

# Create Date: 2017.10.31 Tuesday# Author: Eric Zhao# -*- coding:utf-8 -*-'''编写登陆接口输入用户名密码认证成功后显示欢迎信息输错三次后锁定 '''login_user = input('Please input user name..')# obj_u = '\''+login_user+'\''# print(obj_u)password = input('Please input password..')users

python 实现登陆接口

要求: 1.输入用户名密码 2.认证成功后显示欢迎信息 3.输入三次后,锁定账户 流程图: 代码实现: #!/usr/bin/env python#!-*- coding:utf-8 -*-#!--author:freem---import osdef auths(username,password):    for i in range(3): #循环3次,实现3次登陆认证        user=input("please insert you username:",)      

python 编写登陆接口

#!/usr/bin/env python#_*_ coding:utf-8 _*_dic={ 'yts':{'password':'123','count':0}, 'nick':{'password':'123','count':0}, 'test':{'password':'123','count':0},}while True: name=input('请输入用户名: ') if not name in dic: print('用户不存在') continue if dic[name][

Python之登陆接口设计

刚刚开始学习Python,第一个编写的程序. import os user_file = open('use_file.txt', 'r') user_list = user_file.readlines() user_file.close() while True: lock_file = open('lock_file.txt', 'r+') lock_list = lock_file.readlines() lock_file.close() login_Success = False u

Python编写登陆接口

实现功能: 输入用户名和密码 认证成功后显示欢迎信息 输错三次后锁定 1 # 提示输入用户名和密码 2 3 # 验证用户名和密码 4 # 如果错误,则输出用户名或密码错误 5 # 如果成功,则输出 欢迎,XXX! 6 7 8 #!/usr/bin/env python 9 # -*- coding: encoding -*- 10 11 import getpass 12 13 14 name = raw_input('请输入用户名:') 15 pwd = getpass.getpass('请输

python:编写登陆接口(day 1)

作业要求: 输入用户名,密码 认证成功显示欢迎信息 输入错误三次后锁定用户 Readme 1.user_id.txt是存放用户id及密码的文件 2.user_lock.txt是存放被锁定的用户id的文档,默认为空. 3.程序会对user_id.txt里的合法用户id进行判断,若连续输入用户id错误达三次程序直接退出. 4.程序会输入对正确用户名后的密码进行判断,输入密码有3次机会,连续三次错误则会锁定用户id并且退出. 流程图: 代码: #!/user/binenv python3 # -*-

Python 编写登陆接口,输入用户名密码,认证成功后显示欢迎信息,输入错误三次锁定

file = open('lock.txt').readlines()name = input('username:').strip()lock=[]for i in file:     line = i.strip('\n')     lock.append(line)if name in lock:     print(name,'已经被锁定,请联系开户行.退出!')else:     i = 1     while i <=3:            i = i + 1          

Python 登陆接口小程序V1

Python 登陆接口小程序版本V1 Python #!/usr/bin/env python #_*_coding:utf-8 _*_ __author__ = 'gaogd' import MySQLdb as mysql import datetime class Authon(object):     def __init__(self):         self.db = mysql.connect(user="root", passwd="[email prot

【Python笔记】第一课:基于文件处理的登陆接口

1.基本需求 编写登陆接口,实现如下需求: (1)输入用户名密码 (2)认证成功后显示欢迎信息 (3)输错三次后锁定 2.实现细节 ·每添加一个用户,需要手动添加三个文件 文件 功能 username_count.txt 记录用户输错密码的次数,最大为3次,如果用户密码输入正确,则重置为0,默认为0 username_lock.txt 记录用户是否被锁定,1表示锁定,0表示未锁定,默认为0 username_passwd.txt 记录用户的密码 ·注:username是指该用户的用户名,视具体的