Python作业之三次登陆锁定用户

作业之三次登陆锁定用户

作业要求如下:

1. 输入用户名和密码

2. 认证成功提示欢迎信息

3. 认证失败三次锁定用户

具体代码如下:

方法1:

import os#导入os模块
if os.path.exists(‘d:\\login_name_list.txt‘):#使用os模块的方法来检测该文件是否存在
    with open(‘d:\\login_name_list.txt‘) as f:#打开文件,默认只读方式
        f_read = f.read().strip()
    if len(f_read) > 0:
        print(‘%s 该用户已被锁定(%s is locked)!‘% (f_read,f_read))
        exit()
else:
    with open(‘d:\\login_name_list.txt‘,‘w‘) as f:#创建文件
        f.write(‘ ‘)
name_password_list = [{‘zhang‘:‘123‘},{‘lisi‘:‘234‘}]#声明用户名数据库
lock_name = []#声明空的被锁定用户的列表
judge = {}#声明空的存储用户名和密码的字典
while True:
    login_name = input(‘请输入用户名(Please input name):‘).strip()#输入用户名
    login_password = input(‘请输入密码(Please input password):‘).strip()#输入密码
    judge[login_name] = login_password#把用户名和密码存储到字典中
    if judge in name_password_list:#判断存储用户名和密码的字典是否存在数据库中
        print(‘欢迎来到Python课堂(Welcome to PythonClass)!‘)
        break
    else:
        print(‘用户名或密码错误(The name or password is error)!‘)
        lock_name.append(login_name)#添加错误的用户名到锁定用户名的列表中
        if lock_name.count(login_name) == 3:#判断错误的用户名是否等于三次
            with open(‘d:\\login_name_list.txt‘,‘w‘) as f_login:#打以写入的模式开文件
                f_login.write(login_name)
            print(‘%s 该用户已被锁定(%s is locked)!‘%(login_name,login_name))
            break

注:该方法实现的功能是:只有当同一个用户名输入错误次数超过三次时,该用户将会被锁定。 方法2:

import os#导入os模块
if os.path.exists(‘d:\\login_name_list.txt‘):#使用os模块的方法来检测该文件是否存在
    with open(‘d:\\login_name_list.txt‘) as f:#打开文件,默认只读方式
        f_read = f.read().strip()
    if len(f_read) > 0:
        print(‘%s 该用户已被锁定(%s is locked)!‘% (f_read,f_read))
        exit()
else:
    with open(‘d:\\login_name_list.txt‘,‘w‘) as f:#创建文件
        f.write(‘ ‘)
name_password_list = [{‘zhang‘:‘123‘},{‘lisi‘:‘234‘}]#声明用户名数据库
lock_name = []#声明空的被锁定用户的列表
judge = {}#声明空的存储用户名和密码的字典
for i in range(3):
    login_name = input(‘请输入用户名(Please input name):‘).strip()#输入用户名
    login_password = input(‘请输入密码(Please input password):‘).strip()#输入密码
    judge[login_name] = login_password#把用户名和密码存储到字典中
    if judge in name_password_list:#判断存储用户名和密码的字典是否存在数据库中
        print(‘欢迎来到Python课堂(Welcome to PythonClass)!‘)
        break
    else:
        print(‘用户名或密码错误(The name or password is error)!‘)
else:
    print(‘错误次数太多(Error is too many)!‘)
    with open(‘d:\\login_name_list.txt‘,‘w‘) as f_login:#打以写入的模式开文件
        f_login.write(login_name)
        print(‘%s 该用户已被锁定(%s is locked)!‘%(login_name,login_name))

注:该方法实现的功能是:只有三次错误的机会,当第三次错误时,将会把第三次错误的用户名进行锁定。

时间: 2024-10-09 20:51:15

Python作业之三次登陆锁定用户的相关文章

python作业:模拟登陆(第一周)

模拟登陆作业需求: 1. 用户输入帐号密码进行登陆 2. 用户信息保存在文件内 3. 用户密码输入错误三次后锁定用户 额外实现功能: 1.提示输入错误次数 2.输入已锁定用户会提示 3.用户不存在会提示 正确用户信息文件中以字典形式保存用户名密码: {'name': 'password','cx':'123','even':'456','test':'ok'} 锁定用户信息文件中以列表形式保存锁定用户名: ['name'] 流程图: 详细代码:(python3.6) #!/usr/bin/env

python作业:编写登陆接口

要求: 1.要求用户输入用户名和密码 2.认证成功显示欢迎信息 3.输入错误超过三次锁定用户 1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 #__author__ = 'Administrator' 4 5 static=True 6 login=False 7 username='' 8 lockfile=r'lock.txt' 9 for i in range(3): 10 username=input("please input your

【跟着金角大王学Python】-课后作业:编写登陆接口

要求: 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 本程和作业要求稍有不同,当用户输入三次相同的用户名且无法登陆时锁定该用户名. 下面也会附上符合题目要求的代码,但是存在一个Bug,就是输入三次无法正确登陆只会锁定最后一次输入的用户名. 程序一: #!usr/bin/evn python #-*-coding utf-8  -*- __author__ = 'Galen' import getpass as gp#引入getpass模块 import pickle#引入pickle模

python 3.5 用户登录验证和输入三次密码锁定用户

1 #!/usr/bin/env python 2 #encoding: utf-8 3 #登录程序,输入用户和密码输出欢迎信息,输入错误三次锁定用户,不让登录 4 import sys 5 print (''' 6 欢迎登陆我们的系统 7 ''') 8 9 pass_file = open('passwd.txt','r') 10 clok_file = open('clok.txt','r') 11 12 name_list = [] 13 clok_list = [] 14 name_di

Python tkinter 实现简单登陆注册 基于B/S三层体系结构,实现用户身份验证

Python tkinter 实现简单登陆注册 最终效果 开始界面 ? 注册 登陆 ? 源码 login.py # encoding=utf-8 from tkinter import * from tkinter import messagebox as tkMessageBox import mysql_connect as mys import pymysql import base64 #加密 将用户的密码加密后储存到数据库 def encryption(str): str=str.en

Linux如何设置错误口令登陆超过N次锁定用户(针对sshd)

错误口令登陆超过3次锁定用户15分钟 # vi /etc/pam.d/sshd ... auth required pam_tally2.so deny=5 unlock_time=900 even_deny_root root_unlock_time=900 ... 保存退出,立刻生效 注:这里使用的是 pam_tally2 模块; deny: 错误口令登陆次数: unlock_time: 锁定用户时间,单位为秒: 如果想取消对 root 的锁定则把  even_deny_root 和 roo

Centos7下用户登录失败N次后锁定用户禁止登陆的方法(转)

针对linux上的用户,如果用户连续3次登录失败,就锁定该用户,几分钟后该用户再自动解锁.Linux有一个pam_tally2.so的PAM模块,来限定用户的登录失败次数,如果次数达到设置的阈值,则锁定用户. PAM的配置文件介绍 PAM配置文件有两种写法: 一种是写在/etc/pam.conf文件中,但centos6之后的系统中,这个文件就没有了. 另一种写法是,将PAM配置文件放到/etc/pam.d/目录下,其规则内容都是不包含 service 部分的,即不包含服务名称,而/etc/pam

python-------------输入三次锁定用户-----作业

1,首先要先定义两个文件,1个是用户文件,1个是黑名单文件,我是用用户文件里事先定义的用户名和密码来实现输入三次错误的用户名来锁定用户,随后加入黑名单.重新启动程     序,不允许这个黑名单用户登录. 2,这里的用户文件是:"user-" 黑名单文件: "Blacklist" 3,这里只要用户登录成功,就退出程序,而不是在接着循环. 3.有bug,输入第三次 就锁定第三次输入的用户,而不是一个用户连续输入三次 错误,才锁定这个用户. 4, 代码如下: 1 def

python 循环和file操作实现用户密码输错三次将用户锁定

一.需求编写登录接口1.输入用户名密码2.认证成功后显示欢迎信息3.输错三次后锁定 二.简单思路登录,三次密码输入错误锁定用户1.用户信息文件:存放用户名和密码2.黑名单文件:将输入三次错误的用户加入此名单,加入此名单的用户将不允许登录 三.具体实现第一步:在黑名单里检测是否有此用户,如果有则不让登录第二步:用户名和密码判定 代码如下: #!/usr/bin/env python3count = 0 #记录用户输入密码的次数 flag = 1 #标志位 lock = [] user_pass =