一、hashlib模块
1.1 hashlib模块,主要用于加密相关的操作,在python3的版本里,代替了md5和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法。
加密需要先实例化MD5对象,再将字符串转成bytes类型(加密必须得是bytes类型,不能直接对字符串加密)进行加密,且md5是不可逆的!
m =hashlib.md5()#实例化md5对象 passwd ='ytt123456' # passwd.encode()#把字符串转成bytes类型 #加密必须得是bytes类型 m.update(passwd.encode())#不能直接对字符串加密,要先把字符串转成bytes类型 print(m.hexdigest()) #md5是不可逆的
1.2 将加密写成一个函数如下:
def my_md5(str): new_str = str.encode()#字符串转成bytes类型 #new_str = b'%s'%str##字符串转成bytes类型 m = hashlib.md5()#实例化md5对象 m.update(new_str)#加密 return m.hexdigest()#获取结果返回
二、Base64 是一种用64个字符来表示任意二进制数据的方法
import base64 s='hahaha' byte_s = s.encode() #字符串变成二进制 res = base64.b64encode(byte_s) #base64编码 print(res.decode()) #把bytes转成字符串。 #打印结果:aGFoYWhh jie_mi_res = base64.b64decode(res.decode()) #base64编码 print(jie_mi_res.decode()) #输出结果:hahaha
三、json模块
import json #json串是一个字符串 f = open('product',encoding='utf-8') res = f.read() print(json.loads(res))#字符串变成字典 product_dic = json.loads(res)#把字符串,变成python的数据类型 print(type(product_dic)) print(product_dic.get('product_info')) print(json.load(f))#传一个文件对象,它会帮你读文件
d = { 'zll':{ 'addr':'北京', 'age':28 }, 'ljj':{ 'addr':'北京', 'age':38 } } fw = open('user_info.json','w',encoding='utf-8') dic_json = json.dumps(d,ensure_ascii=False,indent=4)#字典转成json,字典转成字符串 #显示为中文 缩进4格 print(dic_json) fw.write(dic_json) json.dump(d,fw,ensure_ascii=False,indent=4)#操作文件,自动帮你写了
3.1 json文件小练习
import json def op_data(filename,dic=None): if dic:#字典不为空,写入 with open(filename,'w',encoding='utf-8') as fw: json.dump(dic,fw,ensure_ascii=False,indent=4)#操作文件,自动帮你写了 else: with open(filename,encoding='utf-8') as fr: return json.load(fr)#传一个文件对象,它会帮你读文件 FILE_NAME = 'user_info.json' all_users =op_data('user_info.json') print(all_users) for i in range(3): choice = input('输入,1注册,2删除') if choice =='1': username = input('username:') pwd = input('pwd:') if username not in all_users: all_users[username] =pwd op_data(FILE_NAME,all_users) elif choice =='2': username =input('username:') all_users.pop(username) op_data(FILE_NAME,all_users)
分类:
python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构