首页 > 代码库 > 用python实现简单用户管理系统
用python实现简单用户管理系统
《python核心编程》第七章练习题第五题
一:题目描述:
userpw2.py。下面的问题和例题7.1中的管理名字-密码的键值对数据程序有关。
(a) 修改那个脚本,使他能记录用户上次的登陆日期和时间(用time模块),并与用户密码一起保存起来。程序的界面要求用户输入用户名和密码的提示。无论用户名是否登陆成功,都应有提示,在用户登陆成功后,应更新相应用户的上次登陆时间戳。如果本次登陆与上次登陆在时间上相差不超过四个小时,则通知该用户:“You already in at :<last_login_timestamp>”。
(b) 添加一个管理菜单,其中有以下两项:(1)删除一个用户 (2)显示系统中所有用户的名字和他们密码的清单。
(c) 口令目前没有加密。请添加一段对口令加密的代码
(d) 为程序添加图形界面,例如,用Tkinter。(图形化界面开发比较复杂,这里没有用到。)
(e) 要求用户名布区分大小写。
(f ) 加强对用户名的限制,不允许符号和空白符。
(g) 合并“新用户”和“老用户”两个选项。如果一个新用户试图用一个不存在的用户名登陆,询问该用户是否是新用户,如果是肯定的,就创建该用户。否则按老用户的方式登陆。
二:
程序中用到的模块解释如下:
(1) re:正则表达式引擎,python中调用正则表达式的方法
(2) pickle:对象持久化,将数据写入到磁盘中
(3) datetime:时间处理,用于记录用户登陆时间戳
(4) base64:base64加密模块
(5) hashlib:hash加密模块
完整代码:
#-*- coding:utf-8 -*- #2017.7.17 import re import pickle import base64,hashlib from datetime import datetime def Initialization(file_name): ‘‘‘‘‘程序初始化,创建user.ini和time.ini文件‘‘‘ dict_test={‘admin‘:‘db69fc039dcbd2962cb4d28f5891aae1‘} #创建超级管理员,默认密码为admin f = file(file_name,‘a+‘) #以追加的方式打开文件,避免文件被修改 if len(f.readlines()) ==0: #判断程序是否为空,只在第一次运行的时候初始化 if file_name==‘user.ini‘: pickle.dump(dict_test, f, True) else: pickle.dump({},f, True) f.close() def encodepass(passwd): ‘‘‘‘‘采用base64和md5双层加密,破解可能几乎为0‘‘‘ m = hashlib.md5() pwd = base64.b64encode(passwd) m.update(pwd) return m.hexdigest() def time_order(user): ‘‘‘‘‘记录用户登陆时间,结果保存在time.ini文件中‘‘‘ ft = file(‘time.ini‘,‘r‘) dbt = pickle.load(ft) if user not in dbt: dbt.setdefault(user,datetime.today()) else: time_value = http://www.mamicode.com/dbt[user] >
用python实现简单用户管理系统
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。