一、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 =='':
username = input('username:')
pwd = input('pwd:')
if username not in all_users:
all_users[username] =pwd
op_data(FILE_NAME,all_users)
elif choice =='':
username =input('username:')
all_users.pop(username)
op_data(FILE_NAME,all_users)

最新文章

  1. Dockerfile创建自定义Docker镜像以及CMD与ENTRYPOINT指令的比较
  2. [POJ2404]Jogging Trails(中国旅行商问题)(一般图的匹配——状压DP)
  3. JAVA虚拟机之类加载器
  4. 内省与JavaBean
  5. SqlServer2008 新功能:简单数据加密
  6. 微软 Dynamics AX 学习步骤
  7. 读取sd卡下图片,由图片路径转换为bitmap
  8. 快速排序的C语言实现
  9. [模拟]P1202 [USACO1.1]黑色星期五Friday the Thirteenth
  10. Java NIO 概览
  11. react-redux的基本用法
  12. weblogic创建domain教程
  13. 廖雪峰Java5集合-6Stack-1使用Stack
  14. Mysql----数据备份、pymysql模块
  15. Tomcat 8.5 无法进入Manage APP
  16. 【jQuery源码】DOM Ready
  17. JS截图(html2canvas)
  18. iOS 源代码混淆(初步混淆)
  19. jvm编译环境搭建 win Vc篇
  20. scanf输入字符串相关

热门文章

  1. element-ui table表格展开行每次只能展开一行
  2. IO流的总结(二)
  3. Go 初体验 - channel.2 - 超时机制
  4. CentOS 7 搭建Jumpserver跳板机(堡垒机)
  5. jquery简易tab切换
  6. nginx-负载均衡相关配置 第五章
  7. javascript监听按键
  8. ACM题集以及各种总结大全(转)
  9. Ubuntu 18.04拨号上网及校园网开启IPV6
  10. Numpy中的广播原则(机制)