zoukankan      html  css  js  c++  java
  • 3-31作业

    作业:

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

    import hashlib
    def register():
        m = hashlib.md5()
        username = input("请输入要注册的账号:")
        password = input("请输入要注册的密码:")
        password2 = input("请再次输入的密码:")
        if password==password2:
            m.update(password.encode("utf-8"))
            res = m.hexdigest()
            print(res)
            with open("db.txt","a",encoding="utf-8")as f:
                f.write(f'{username}:{res}
    ')
    
    def login():
        user_inp = input("请输入你的账号:")
        pwd_inp = input("请输入你的密码:")
        with open("db.txt","r",encoding="utf-8")as f1:
            user = hashlib.md5()
            user.update(pwd_inp.encode("utf-8"))
            res = user.hexdigest()
            for line in f1:
                username,password = line.strip().split(":")
                if user_inp ==username:
                    if res == password:
                        print("登录成功")
                        return
                    else:
                        print('密码错误')
            else:
                print("账号不存在")
    register()
    login()


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

    import hashlib
    
    def down_file():
        with open('download_file.txt', 'rb') as f:
            m = hashlib.md5()
            for i in [0, 150, 300]:
                f.seek(i, 0)
                res = f.read(50)
                m.update(res)
            res = m.hexdigest()
        return res
    
    def o_file():
        with open('file.txt', 'rb') as f:
            m = hashlib.md5()
            for i in [0, 150, 300]:
                f.seek(i, 0)
                res = f.read(50)
                m.update(res)
            res = m.hexdigest()
            return res
    
    if down_file() == o_file():
        print("文件完整")
    else:
        print("文件已损坏")


    3、注册功能改用json实现

    import json
    import os
    def register():
        inp_name = input("用户名:").strip()
        inp_pwd = input("密码:").strip()
        inp_pwd2 = input("确认密码:").strip()
        if not (inp_name and inp_pwd and inp_pwd2):
            print('输入不能为空')
            return
        if inp_pwd != inp_pwd2:
            print('两次密码不一致')
            return
        with open(r'db.json', 'a+t', encoding='utf-8') as r_f,
            open(r'db.json.swap', 'wt', encoding='utf-8') as w_f:
            r_f.seek(0, 0)
            if r_f.read() == '':
                r_f.write(json.dumps({inp_name:inp_pwd}))
                w_f.close()
                os.remove('db.json.swap')
                print("注册成功")
                return
            r_f.seek(0, 0)
            load_res = json.loads(r_f.read())
            if inp_name in load_res:
                print('用户名已存在')
                w_f.close()
                os.remove('db.json.swap')
                return
            load_res[inp_name] = inp_pwd
            json.dump(load_res, w_f)
            print("注册成功")
        os.remove('db.json')
        os.rename('db.json.swap', 'db.json')
    register()


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

     
    import configparser
    
    config=configparser.ConfigParser()
    config.read(settings.py)
    print(config.sections())
    
    print(config.options('section1'))
    
    print(config.items('section1'))
  • 相关阅读:
    koa中使用 ejs
    koa 中获取 post 提交数据
    koa-static 静态资源中间件
    koa 中使用 art-template 模板引擎
    koa中使用cookie
    elasticsearch的安装和使用
    J2EE项目中后台定时运行的程序
    pycharm下搭建django开发环境
    什么是反向代理,如何区别反向与正向代理
    ionic build android error when download gradle
  • 原文地址:https://www.cnblogs.com/2722127842qq-123/p/12607650.html
Copyright © 2011-2022 走看看