python实现用户管理系统.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PythOn PythOn管理系统系列 第 第 PAGE #页共5页 PythOn实现用户管理系统 一、 题目描述 USerPW2.pya下面的问题和例题7.1中的管理划字-密码的键值对数据程序有关。 修改那个脚本,使他能记录用户上次的登陆日期和时间(用廿me模块),并与用户密码 一起保存起来。程序的界而要求用户输入用户划和密码的提示。无论用户名是否登陆成功, 都应有提示,在用户登陆成功后,应更新相应用户的上次登陆时间戳。如果本次登陆与上次 登陆在时间上相差不超过四个小时,则通知该用户:You already in at:lastjogin-timestamp ,? 添加一个岳理菜单,其中有以下两项:(1)删除一个用户(2)显示系统中所有用户的 名字和他们密码的淸单。 (C) 口令目前没有加密。请添加一段对口令加密的代码 为程序添加图形界面,例如,用TkinterO (图形化界面开发比较复杂,这里没有用到。) 要求用户划布区分大小写。 加强对用户名的限制,不允许符号和空白符。 合并“新用户”和“老用户”两个选项。如果一个新用户试图用一个不存在的用户名登 陆,询问该用户是否是新用户,如果是肯泄的,就创建该用户。否则按老用户的方式登陆。 二、 程序中用到的模块,解释如下: (l)re:正则表达式引擎,PythOn中调用正则表达式的方法 ⑵pickle:对象持久化,将数据写入到磁盘中 (3) datetime:时间处理,用于记录用户登陆时间戳 ⑷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文件小 dict3θst={,admin,ι,db69fc039dcbd2962cb4d28f5891aael,} #创建超级管理员 默认密码为 admin f = file(file-name,,a+) #以追加的方式打开文件,避免文件被修改 if len(f.readlines()) ==0: #判断程序是否为空,只在第一次运行的时候初始化 if file-name==,user.i nil PiCkIe.dump(cIiCteteStZ f, TrUe) else: PiCkle.dump({}Λ TrUe) f.close() def Gn COdePaSS(PaSSWd): 采用base64和md5双层加密,破解可能几乎为0, m = hashlib.md5() PWd = base64.b64encode(passwd) m.update(pwd) return m.he×digest() def time_Order(User): ””记录用户登陆时间,结果保存在time.ini文件中”’ ft = file(,time.ini,∕rl) dbt = PiCkle.load(ft) if USer not in dbt: dbt.setdefault(userzdatetime.today{)) else: time-value = dbt[user] t = datetime.today()-time_VaIUe try: if t.hour=4: Print You already IOgged in at:last」ogin-timestamp, except: Print ,You already IOgged in atzlastjogin-timestamp, dbt[user] = datetime.today() ft = file(,time.ini,∕wl) PiCkIe.dump(dbt, ft, TrUe) ft.close() def n ewuser(db): 用户创建程序,由OldUSer调用 WhiIe True: name = rawjnput(,Please inPUt the username:1) if re.match(r,?w,, name): #采用正则表达式检测用户名是否合法 PaSS else: Print ,USername should be made of A~Z、a~z、0zv9 COntinUe for value name in db.keys(): if name」oWero == ValUename」ower{): break else: break PaSSWd = rawjnput(,P

文档评论(0)

fengnaifeng + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档