python----常用模块(hashlib加密,Base64,json)
一、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)
python----常用模块(hashlib加密,Base64,json)的更多相关文章
- python常用模块——hashlib模块
Python的hashlib提供了常见的摘要算法,如md5.sha1等 什么是摘要算法了?摘要算法又称哈希算法.散列算法. 它通过一个函数,把任意长度的数据转化魏一个长度固定的数据串(通常用十六进制的 ...
- python常用模块集合
python常用模块集合 Python自定义模块 python collections模块/系列 Python 常用模块-json/pickle序列化/反序列化 python 常用模块os系统接口 p ...
- python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则
python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess ...
- Python常用模块之hashlib(加密)
Python常用模块之hashlib(加密) Python里面的hashlib模块提供了很多加密的算法,这里介绍一下hashlib的简单使用事例,用hashlib的md5算法加密数据import ha ...
- Python常用模块-摘要算法(hashlib)
Python常用模块-摘要算法(hashlib) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MD5算法参数详解 1.十六进制md5算法摘要 #!/usr/bin/env p ...
- python常用模块之json、pickle模块
python常用模块之json.pickle模块 什么是序列化? 序列化就是把内存里的数据类型转换成字符,以便其能存储到硬盘或者通过网络进行传输,因为硬盘或网络传输时只接受bytes. 为什么要序列化 ...
- (转)python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)
阅读目录 1.1.1导入模块 1.1.2__name__ 1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代 ...
- Python常用模块——目录
Python常用模块学习 Python模块和包 Python常用模块time & datetime &random 模块 Python常用模块os & sys & sh ...
- Python常用模块小结
目录 Python常用模块小结 一.Python常用模块小结 1.1 time模块 1.2 datetime模块 1.3 random模块 1.4 os模块 1.5 sys模块 1.6 json模块 ...
- python常用模块 以及第三方导入
python常用模块 1模块的分类 标准模块(内置模块)( 标准库 )300 第三方模块 18万 pip install 直接通过pip安装 软件一般会被自动安装你python安装目录的这个子目录里 ...
随机推荐
- cocos2d-x在Android上的编译过程(3):简化Android.mk文件的编写
在编译动态库时.要求我们要去编写jni/Android.mk文件.告诉编译器编译出来的库时应包括包括编译文件和其它引用库.但对于一个大项目来说,维护这个文件肯定是一件比較繁琐的事情.由于每加一个文件或 ...
- vue-cli 搭建的项目关闭 eslint
一般不会关闭eslint,基于接手的代码用eslint的时候报错太多,强迫症的人实在忍受不了报错,先实行关闭: 1.在build 下面的 webpack.base.conf.js 找到 module- ...
- 关于Java中StringBuffer的capacity问题
从API查到capacity的作用是查看StringBuffer的容器容量是多少,刚开始纳闷这个跟length的区别在哪?试验了几次感觉有点不解.所以直接跟进源码分析. 直接通过new StringB ...
- await异步的,容易理解一点
C# 5.0中引入了async 和 await.这两个关键字可以让你更方便的写出异步代码. 看个例子: public class MyClass { public MyClass() { Displa ...
- python_的面向对象编程
废话不多说,先弄个对象来看看 class Student(object): def __init__(self, name, score): self.name = name self.score = ...
- MongoDB 之 你得知道MongoDB是个什么鬼 MongoDB - 1
最近有太多的同学向我提起MongoDB,想要学习MongoDB,还不知道MongoDB到底是什么鬼,或者说,知道是数据库,知道是文件型数据库,但是不知道怎么来用 那么好,所谓千呼万唤始出来,现在我就拉 ...
- 为什么一个java源文件中只能有一个public类
问题:一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 答案:可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致.一个文件 ...
- springMVC学习路线3-整合spring(annotion方式)
个人认为使用框架并不是很难,关键要理解其思想,这对于我们提高编程水平很有帮助.不过,如果用都不会,谈思想就变成纸上谈兵了!!!先技术,再思想.实践出真知. 1.基本概念 1.1 Spring Sp ...
- Filter中request对象强转问题
以下为过滤器doFIlter方法的源代码: public void doFilter(ServletRequest request, ServletResponse response, FilterC ...
- Python 类的特性讲解
类的特性讲解 类的特性 #定义一个类, class是定义类的语法,Role是类名, (object)是新式类的写法,必须这样 写,以后再讲为什么 class Role(object): #初始化函数, ...