简单的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[0].strip()

value_passwd = value_useritem[1].strip()

lock_value = int(value_useritem[-1])

logincount_value = int(value_useritem[-2])

#生成用户名列表

userdict[value_username] = {‘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[username][‘locknum‘] == 0 and userdict[username][‘lockcount‘] < 3 :

if userpasswd == userdict[username][‘pwd‘].strip():

print ‘欢迎登陆系统!!!‘

break

else:

counter += 1

userdict[username][‘lockcount‘] += 1

userfile = file(‘user_id.txt‘, ‘w+‘)

for t in userdict.values():

wuserlist = [str(t[‘name‘]), 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的格式为:

用户名;密码;错误密码次数;管理员手动锁定账户,如下:

[[email protected] day1]# cat user_id.txt

hejp;123;0;0

test;456;0;0

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

[[email protected] day1]# cat user_id.txt

hejp;123;3;0

test;456;0;0

时间: 2024-10-14 06:33:26

简单的Python登陆认证小程序的相关文章

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

微信小程序之微信登陆 —— 微信小程序教程系列(20)

简介: 微信登陆,在新建一个微信小程序Hello World项目的时候,就可以看到项目中出现了我们的微信头像,其实这个Hello World项目,就有一个简化版的微信登陆.只不过是,还没有写入到咱们自家的后台中而已. 新建一个Hello World项目,找到app.js文件打开,代码如下: app.js: App({ onLaunch: function () { //调用API从本地缓存中获取数据 var logs = wx.getStorageSync('logs') || [] logs.

一个简单的计算分数的小程序

一个简单的计算分数的小程序 代码如下: package Day05; public class ExamGradeDemo { public static void main(String[] args) { char[][] answers = { {'C','B','D','C','A','A','D','C','D','C'}, {'A','C','B','D','C','A','D','C','B','D'}, {'A','C','B','D','B','D','C','A','A','

[python]Google翻译小程序

工程中要用到一个翻译的功能,也就是提交到Google翻译后,获取返回的结果. 首先摸清Google翻译的脉络: request处理 提交翻译后,查看request和response分别是什么内容: 首先我们得到了提交的URL url = httl://translate.google.cn/translate_a/t 还有如上的提交表单,分析可知: sl = source language = en(english) tl = target language = zh-CN(简体中文) 以及编码

python获取微信小程序openid及用户信息

填坑记录:1.个人微信公众订阅号是不能申请微信认证的.公众号的类型在注册时一旦选择就不能更改,微信公众号认证的功能除个人订阅号外,都可以申请认证,因而个人订阅号不能申请认证.这句话的意思就是个人订阅号无法开发小程序. 2.个体户营业执照(个体户)可申请微信服务号并申请开发小程序,但需微信认证复用资质并用新邮箱注册小程序账号 3.微信开发工具创建微信小程序填写的appid是小程序的appid(不是微信公众号的),不能是个人小程序的appid,个人小程序没有获取用户信息的权限 4.调用接口获取用户信

登陆加密小程序

自己想的注册登录小程序测试,使用md5加密存储用户填写的密码信息.登陆三次密码错误后退出 #!/usr/bin/env python #_*_ coding:utf-8 _*_ import hashlib def zhuce(): username = raw_input("please input your username") password = raw_input('please input your password') hash = hashlib.md5() hash.

python 发送文本文件小程序!

献上python小程序一枚,不成敬意! #!/usr/bin/python #coding=utf-8 import time import email import smtplib from email.mime.text import MIMEText date=time.strftime('%Y-%m-%d  %H:%M:%S',time.localtime()) sender='[email protected]' receiver='[email protected]' subject

python 协程小程序(草稿有待完善)

#description下面这个小程序就像linux中命tail -f /var/log/messages一样,当运行时可以动态的显示文本文件里的信息哦! import time import sys import os def tail(f): f.seek(0,2) #跳转到文本文件的最后的位置 while True: line = f.readline() if not line: time.sleep(0.1) continue yield line#匹配函数 def grep(line

关于静态数据成员的简单却容易出错的小程序

1 #include "iostream" 2 using namespace std; 3 class complex //声明complex类 4 { 5 public: 6 complex(); 7 void display(); 8 private: 9 static int r; //声明数据成员r是静态的 10 static int i; 11 }; 12 int complex::r=0; //为静态数据成员r赋初始值 13 int complex::i=1; 14 co