python语言day5 MD5 json

发布于:2024-08-12 ⋅ 阅读:(152) ⋅ 点赞:(0)

        md5:

              python提供了内置的md5加密功能,使用md5模拟一个小项目:

                             注册:   

                                启动py程序,在控制台界面提示用户输入用户名及密码;

                                使用md5加密 密码;

                                创建txt文件记录输入的用户名 和密文。

                             登录:

                                再次让用户输入用户名和密码;

                                使用md5加密 得到对应密文;

                                读取txt文件验证是否有符合的用户名及密文。

import hashlib


def md5(data):
    obj = hashlib.md5()
    obj.update(data.encode('utf-8'))
    return obj.hexdigest()


def write(content1, content2):
    file_obj = open("db.txt", mode='a', encoding='utf-8')
    file_obj.write(content1)
    file_obj.write(content2)
    file_obj.close()


def read(fileName):
    file_obj = open(fileName, mode='r', encoding='utf-8')
    content = file_obj.read().split("\n")
    file_obj.close()
    return content


if __name__ == '__main__':
    user = input("请输入用户名:  ")
    password = input("请输入密码:  ")
    pwd = md5(password)
    # content = "{}\n{}".format(user,pwd)
    content1 = "{}\n".format(user)
    content2 = "{}\n".format(pwd)
    write(content1, content2)

    data_list = read("db.txt")
    print(data_list)
    for index, item in enumerate(data_list):
        if index == 0:
            continue
        if (index % 2 != 0):
            if pwd == item:
                if (user == data_list[index - 1]):
                    print("登陆成功")
                    break
        print("循环",index)

         md5加盐:

                  加盐也就是对密文的再次加密,防止撞库,再次加密的对应关系要保留。

                 例如 :

                      密文:  900150983cd24fb0d6963f7d28e17f72

                      加盐: 900150983cd24fb0d6963f7d28e17f72a

                      加盐对应关系就是最后多个a,这样撞库也撞不出来。

json:

    str.json():  json格式转对应字典数组格式

                发送一个get请求到url,得到一个json数据,并遍历数组data["data"]["result"]:

                        只有第一行字符串是json格式,其他行都只是类似json的字符串。
 

                                

import requests

res = requests.get('https://api.luffycity.com/api/v1/course/actual/?')
print(res.text)

data = res.json()
for item in data["data"]["result"]:
    print(item)

                

        标准的json格式的语法:

                        内部一定是用双引号对应key值;

                        最外层可以是花括号,也可以是中括号;

                        整个json对象的名字没有意义,不管叫什么名字,只会显示封装好的内部数据

            

         json.loads():

                    python内置的json包提供了对json格式的解析

         json.dumps():

                    将数据封装为json格式。    

                


网站公告

今日签到

点亮在社区的每一天
去签到