day23 作业

1、把登录与注册的密码都换成密文形式

  1. import hashlib
  2. def register():
  3. m = hashlib.md5()
  4. username = input("请输入要注册的账号:")
  5. password = input("请输入要注册的密码:")
  6. password2 = input("请再次输入的密码:")
  7. if password==password2:
  8. m.update(password.encode("utf-8"))
  9. res = m.hexdigest()
  10. print(res)
  11. with open("db.txt","a",encoding="utf-8")as f:
  12. f.write(f'{username}:{res}\n')
  13. def login():
  14. user_inp = input("请输入你的账号:")
  15. pwd_inp = input("请输入你的密码:")
  16. with open("db.txt","r",encoding="utf-8")as f1:
  17. user = hashlib.md5()
  18. user.update(pwd_inp.encode("utf-8"))
  19. res = user.hexdigest()
  20. for line in f1:
  21. username,password = line.strip().split(":")
  22. if user_inp ==username:
  23. if res == password:
  24. print("登录成功")
  25. return
  26. else:
  27. print('密码错误')
  28. else:
  29. print("账号不存在")
  30. register()
  31. login()

2、文件完整性校验(考虑大文件)

  1. def official_file_hx():
  2. with open("official_file","rt",encoding="utf-8")as f :
  3. l = [20, 30, 40]#l根据需求改变
  4. m = hashlib.md5()
  5. for i in l :
  6. f.seek(i,0)
  7. res = f.read(5)
  8. m.update(res.encode("utf-8"))
  9. res = m.hexdigest()
  10. return res
  11. def download_file_hx():
  12. with open("download_file","rt",encoding="utf-8")as f :
  13. l = [20,30,40]
  14. m = hashlib.md5()
  15. for i in l:
  16. f.seek(i,0)
  17. msg = f.read(5)
  18. m.update(msg.encode("utf-8"))
  19. res = m.hexdigest()
  20. if res == official_file_hx():
  21. print("文件完整")
  22. else:
  23. print("文件不完整")
  24. download_file_hx()

3、注册功能改用json实现

  1. import json
  2. def register():
  3. m = hashlib.md5()
  4. username = input("请输入要注册的账号:")
  5. password = input("请输入要注册的密码:")
  6. password2 = input("请再次输入的密码:")
  7. if password==password2:
  8. m.update(password.encode("utf-8"))
  9. res = m.hexdigest()
  10. print(res)
  11. with open("db.txt","a",encoding="utf-8")as f:
  12. # f.write(f'{username}:{res}\n')
  13. user_dict = {username:res}
  14. json.dump(user_dict, f)
  15. register()

4、项目的配置文件采用configparser进行解析

  1. text.ini
  2. [section1]
  3. k1 = v1
  4. k2:v2
  5. user=egon
  6. age=18
  7. is_admin=true
  8. salary=31
  9. [section2]
  10. k1 = v1
  1. import configparser
  2. config = configparser.ConfigParser()
  3. config.read('text.ini')
  4. print(config.sections())
  5. print(config.options('section1'))
  6. print(config.items('section1'))
  7. res= config.get('section1','is_admin')
  8. print(res,type(res))
  9. print(config.getint('section1','age'))
  10. print(config.getfloat('section1','age'))
  11. print(config.getboolean('section1','is_admin'))

day23 作业的更多相关文章

  1. day23作业

    # 作业: # 1.把登录与注册的密码都换成密文形式 info = {"tom":"202cb962ac59075b964b07152d234b70"} def ...

  2. day23作业详解

    1.题目 2.题目详解 点击查看详细内容 1. 1-1 封装 把功能封装到类中 class Message(object): def email(self):pass def msg(self):pa ...

  3. Spark Streaming揭秘 Day23 启动关闭源码图解

    Spark Streaming揭秘 Day23 启动关闭源码图解 今天主要分析一下SparkStreaming的启动和关闭过程. 从Demo程序出发,主要聚焦在两段代码: 启动代码: 关闭代码: 启动 ...

  4. day23单例模式 , 日志处理 , 项目结构目录

    # day23笔记 ## 一.补充,作业 ### 1.字符串格式化 ```pythonmsg = "我是%(n1)s,年龄%(n2)s" % {'n1': 'alex', 'n2' ...

  5. python 作业

    Linux day01 计算机硬件知识整理 作业要求:整理博客,内容如下 编程语言的作用及与操作系统和硬件的关系 应用程序->操作系统->硬件 cpu->内存->磁盘 cpu与 ...

  6. python10作业思路及源码:类Fabric主机管理程序开发(仅供参考)

    类Fabric主机管理程序开发 一,作业要求 1, 运行程序列出主机组或者主机列表(已完成) 2,选择指定主机或主机组(已完成) 3,选择主机或主机组传送文件(上传/下载)(已完成) 4,充分使用多线 ...

  7. SQLServer2005创建定时作业任务

    SQLServer定时作业任务:即数据库自动按照定时执行的作业任务,具有周期性不需要人工干预的特点 创建步骤:(使用最高权限的账户登录--sa) 一.启动SQL Server代理(SQL Server ...

  8. 使用T-SQL找出执行时间过长的作业

        有些时候,有些作业遇到问题执行时间过长,因此我写了一个脚本可以根据历史记录,找出执行时间过长的作业,在监控中就可以及时发现这些作业并尽早解决,代码如下:   SELECT sj.name , ...

  9. T-SQL检查停止的复制作业代理,并启动

        有时候搭建的复制在作业比较多的时候,会因为某些情况导致代理停止或出错,如果分发代理时间停止稍微过长可能导致复制延期,从而需要从新初始化复制,带来问题.因此我写了一个脚本定期检查处于停止状态的分 ...

随机推荐

  1. Flask 的模板渲染

    Flask 的模板渲染 渲染模板语言和django很像,都是用{{}},{%%} 注意点: 1 flask给模板传值,render_template("index.htm",use ...

  2. 5、vue的传值

    1-父组件向子组件  -父组件向孙子组件传值(属性传值) //父组件<template> <div id='app'> <headera v-bind:hea=" ...

  3. MyISAM和InnoDB的差异

    转载:https://www.cnblogs.com/xc-chejj/p/11245034.html MyISAM是默认表类型,基于ISAM(Indexed Sequential Access Me ...

  4. snprintf和sprintf区别分析

    目录[-] snprintf函数的返回值 snprintf函数的字符串缓冲 今天在项目中使用snprintf时遇到一个比较迷惑的问题,追根溯源了一下,在此对sprintf和snprintf进行一下对比 ...

  5. EduSoho二次开发功能:单词本使用说明

    测试地址:http://shanxue.edusoho.site/ 管理账号:test 管理密码:123456 针对英语或其他语言进行单词展示,索引功能.可以针对单词进行最多三级的分类筛选,以及不限数 ...

  6. 01 . ELK Stack简介原理及部署应用

    简介 ELK并不是一款软件,是一整套解决方案,是由ElasticSearch,Logstash和Kibana三个开源工具组成:通常是配合使用,而且先后归于Elastic.co公司名下,简称ELK协议栈 ...

  7. 2020 最新 Kubernetes实战指南

    1.Kubernetes带来的变革   对于开发人员 由于公司业务多,开发环境.测试环境.预生产环境和生产环境都是隔离的,而且除了生产环境,为了节省成本,其他环境可能是没有日志收集的,在没有用k8s的 ...

  8. Linux上的Systemctl命令

    LinuxSystemctl是一个系统管理守护进程.工具和库的集合,用于取代System V.service和chkconfig命令,初始进程主要负责控制systemd系统和服务管理器.通过Syste ...

  9. Perl入门(四)Perl的正则表达式

    正则表达式是Perl语言的特色,基本的语法不是很难,但是编写一个符合需求.高效的正则表达式,还是有一些挑战的. Perl的三种匹配模式 1.查找 语法:m/正则表达式内容/; 作用:查找匹配内容中是否 ...

  10. ElasticSearch解决深度分页性能存在的问题使用scoll来解决

    现在我们全局搜索全部的数据,每次返回3条, 从 scroll 请求返回的结果反映了 search 发生时刻的索引状态,就像一个快照.后续的对文档的改动(索引.更新或者删除)都只会影响后面的搜索请求. ...