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格式。