python实现用户管理系统

上传人:夏** 文档编号:487812670 上传时间:2024-01-11 格式:DOCX 页数:5 大小:22.80KB
返回 下载 相关 举报
python实现用户管理系统_第1页
第1页 / 共5页
python实现用户管理系统_第2页
第2页 / 共5页
python实现用户管理系统_第3页
第3页 / 共5页
python实现用户管理系统_第4页
第4页 / 共5页
python实现用户管理系统_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《python实现用户管理系统》由会员分享,可在线阅读,更多相关《python实现用户管理系统(5页珍藏版)》请在金锄头文库上搜索。

1、Python实现用户管理系统一、题目描述USerPW2.py,下面的问题和例题7.1中的管理划字-密码的键值对数据程序有关。修改那个脚本,使他能记录用户上次的登陆日期和时间(用廿me模块),并与用户密码一起保存起来。程序的界而要求用户输入用户划和密码的提示。无论用户名是否登陆成功,都应有提示,在用户登陆成功后,应更新相应用户的上次登陆时间戳。如果本次登陆与上次登陆在时间上相差不超过四个小时,则通知该用户:YouaIreadyinat:(b)添加一个岳理菜单,其中有以下两项:删除一个用户显示系统中所有用户的名字和他们密码的清单。(0口令目前没有加密。请添加一段对口令加密的代码(d)为程序添加图形

2、界面,例如,用Tkinter。(图形化界面开发比较复杂,这里没有用到。)(e)要求用户划布区分大小写。(f)加强对用户名的限制,不允许符号和空白符。(g)合并“新用户”和“老用户”两个选项。如果一个新用户试图用一个不存在的用户名登陆,询问该用户是否是新用户,如果是肯泄的,就创建该用户。否则按老用户的方式登陆。二、程序中用到的模块,解释如下:(Dre:正则表达式引擎,PythOn中调用正则表达式的方法pickle:对象持久化,将数据写入到磁盘中datetime:时间处理,用于记录用户登陆时间戳(4)base64:base64加密模块(5)hashlib:hash加密模块完整代码:#-COding

3、:utf-8-*#2017.7.17importreimportPiCkleimportbase64,hashIibfromdatetimeimportdatetimedefInitialiZatiOn(fiIename):程序初始化,创建user.ini和time,ini文件小dict36st=adminidb69fc039dcbd2962cb4d28f5891aael|#创建超级管理员默认密码为adminf=file(file.name,a+)#以追加的方式打开文件,避免文件被修改iflen(f.readlinesO)=0:#判断程序是否为空,只在第一次运行的时候初始化e.name=use

4、r,iPiCkle.dump(cIiCteteStzf,Trile)f.close()defGnCOdePaSS(PaSSWd):采用base64和md5双层加密,破解可能几乎为。m=hashlib.md5()PWd=base64.b64encode(passwd)m.update(pwd)returnm.heXdigest()deftimeOrder(User):”记录用户登陆时间,结果保存在time.ini文件中ft=file(time.ini/r)dbt=PiCkle.load(ft)ifUSernotindbt:dbt.setdefauIt(userzdatetime.today()e

5、lse:time.vaIue=dbtusert=datetime.today()-time_VaIUetry:ift.hour=4:PrintYouaIreadylOggedinat:except:PrintYouaIreadyIOggedinatzdbtuser=datetime.today()ft=file(time,ini/w)PiCkle.dump(dbt,ft,Trlle)ft.close()defnev/user(db):用户创建程序,由OldUSer调用WhileTrue:name=rawjnput(PIeaseinPUttheusername:ifre.match(rwrnam

6、e):#采用正则表达式检测用户名是否合法PaSSelse:PrintUSernameshouldbemadeofAZ、az、0“9COntinlleforvaIuenameindb.keys():ifnameJoWero=ValllenameJower):breakelse:breakPaSSWd=rawjnput(PleaseinPUtthePaSSWOreI:1)dbname=GnCOdePaSS(PaSSWd)defolduserdb):用户登陆程序name=rawJnput(Login:)ifnameindb:PWd=rawjnput(passwd:1)PaSSWd=db.get(na

7、me)ifPaSSWCI=GnCOdePaSS(PWd):PrintWeIcomeback!、nametime.order(name)else:Printloginincorrent!,else:YN=rawJnputCDoyouWanttoinsteadanewuser?YeSOrNo:)ifYN.lower()=yes:newuser(db)PrintnrdefdeIuser(db):删除一个用户,但必须以管理员的身份”PrintPleaselOginasadmin#管理员的身份才能删除用户name=rawjnput(LoginF)PWd=rawinput(passwd:)PaSSWd=d

8、b.getname)ifPaSSWd=enCOdePaSS(PWd)andnameadmin:USer=raw_input(PeaseinputallSername:)ifUSer!=admin:ifdb.pop(user):PrintDeIeteCurrent!1else:PrintConnotdeIeteadmin!1else:PrintWrOngPaSSWPrddefCheCkUSer(db):查看所有用户,但必须以管理员的身份PrintPleaselOginasadmin#管理员的身份才能查看所有用户name=raw.input(*Login:1)PWd=raw一input(*pass

9、wd:)PaSSWd=db.get(name)ifPaSSWd=GnCOdePaSS(PWCI)andname=admirV:forkeyindb:Printusername:%10s=PaSSWOrd:%10s%(key,dbkey)else:PrintYouCannotCheCkaIIusers!,defresetuser(db):修改密码,但必须正确的输入老密码name=rawjnput(PIeaseinPUttheUSername:)PaSSWd=rawjnput(PleaseinPUt01dPaSSWOrd:)ifdbname=enCOdePaSS(PaSSWd):PaSSWd=ra

10、wJnputPleaseinPUtnewPaSSWOrd:)Clbname=encodepass(passwd)else:PrintWrongpassword!defShOWmenu():程序运行的主函数fu=file(user,ini/r)db=PiOkie,load(fu)PrOmPt=(L)OginNOW(Q) Uit(D)eIetUSer(C)heckAlIUSer(R) esetPaSSWOrdEntGrchoice:done=FaISeWhilenotdone:ChOSen=FaISeWhilenotChOSen:try:ChOiCe=rawJnPUt(PrOmPt).spIit(

11、)0.Iower()except(EOFErroGKeyboardInterrupt):ChOiCe=qPrintnYouPiCked:%s*%ChOiCeifChOiCenotinrIqdcr:PrintinVaiidOPtiOn,tryagainelse:ChOSen=TrUeifChOiCe=qrdOnG二TrUeifchoice=T:0ldllSer(db)ifChOiCe=dideIuser(db)ifChOiCe=c:CheCkUSer(db)ifchoice=riresetuser(db)fu=file(user.ini2w)f_name_=_main:系统有一个用户名为admin密码为admin的超级用户,请立即修改密码PrintWeIcometoUSerInfOrmatiOnManagementSystem!,InitializatiOn(user,ini)InitialiZatiOn(time.ini)ShOWmenllo

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号