"""# json&pickle模块# 1.什么是序列化# 2.为何要有序列化# 3.如何做序列化与反序列化1.序列化指的是把内存数据类型转换成一个特定格式的内容,该格式的内容可用于存储或传输给其他平台使用内存的数据类型------》序列化-----------》特定格式(json、pickle模式)内存的数据类型《-------反序列化《---------特定格式(json、pickle模式)2.如何要有序列化?序列化得到结果----》特定格式的用途有两种用途 1.可用于存储----》用来存档 2.传输给其他平台使用-----》跨平台数据交互强调:针对用途2的特定格式:应该是一种通用,能被所有语言识别的格式json 针对用途1的特定格式:应该是一种专用的模式pickle """import jsonres=json.dumps([1,‘aaa‘,True,False])print(res,type(res))#[1, "aaa", true, false] <class ‘str‘>res=json.loads(res)print(res,type(res))#[1, ‘aaa‘, True, False] <class ‘list‘> # 将序列化结果写入文件简单方法with open("test.json","wt",encoding="utf-8")as f: json.dump([666,‘yoona‘,False,True],f)with open("test.json","rt",encoding="utf-8")as f: res=json.load(f) print(res)#json验证:json格式兼容的是所有语言通用的数据类型,不能识别单一语言类型# json.jumps({1,2,3,6,4})#json强调:搞清楚json格式,不要与python混淆
"""1.什么是哈希hash?hash是一种算法,该算法接收传入的内容,经过运算得到一串hash值hash值的特点:1.1传入的内容一样,得到的hash值必然一样1.2不能由hash值反解成内容1.3只要使用的hash算法不变,得到的hash值长度是一定的2.hash的用途12345abc------>hash字符串客户端-------hash字符串----------服务端hash值即密文密码特点1.2用于密码密文传输与验证特点1.1与1.3用于文件完整性校验3.如何用? """# 原材料---------hash工厂---------hash值"""import hashlibm=hashlib.md5()m.update("hello".encode("utf-8"))m.update(b"world")res=m.hexdigest()print(res)# 利用撞库破解密码import hashlib# res=hashlib.md5(b"yoona123")# res=res.hexdigest()# print(res)dic={}pwd="a26bdd1136c3401ed70d8e45a6c52751"passwords=["yoo12na3","yo12ona3","321noyao","yoona123","yoo321na"]for i in passwords: res=hashlib.md5(i.encode("utf-8")) dic[i]=res.hexdigest()print(dic)for k,v in dic.items(): if v==pwd: print("密码破解成功!密码是%s"%k) break """#提升撞库成本 ----》密码加盐import hashlibm=hashlib.md5()m.update("烟笼寒水月笼纱".encode("utf-8"))m.update("hello".encode("utf-8"))m.update("夜泊秦淮近酒家".encode("utf-8"))print(m.hexdigest())
原文地址:https://www.cnblogs.com/mayrain/p/12607042.html
时间: 2024-11-13 09:46:09