Python的 json 、 hashlib 、 Base64 模块
json模块
简介
全称"JavaScript Object Notation" (JavaScript对象表示法)它是一种基于文本,独立于语言的轻量级数据交换格式
以易于让人阅读的文字为基础,用来传输由属性值或者序列性的值组成的数据对象(键值对)
特点
轻量级的文本数据交换格式
易于人类阅读和编写,同时也易于机器解析和生成
Web世界当中最理想的数据交换格式
语法规则
数据由键值对组成
键值对由逗号分隔
大括号里保存对象
中括号里保存数组(Pyton中的的列表或元组)
字符串必须用双引号
API
json.dumps(obj) 将python数据转化为json indent 实现缩进,ensure_ascii 是否用ascii解析
json.loads(s) 将json数据转换为python的数据
json.dump(obj, fp) 转换为json并保存到文件中
json.load(fp) 从文件中读取json,并转化为python数据
hashlib模块
数据加密概念
对称加密:数据加密解密使用相同的密钥
非对称加密:加密和解密用两把不同的密钥,公钥用于加密数据,私钥用于解密数据
单向加密:只能加密数据,而不能解密数据
特点
定长输出:无论输入的原始数据有多长,结果长度是相同的
抗修改性:输入的微小改变,哪怕只有一个字符,也会引起结果的巨大改变
强碰撞性:很难找到两段内容不同的数据,使他们产生的hash值一致,几乎不可能
API
主要使用md5 其它:sha系列、blake系列
查询所有的哈希算法 hashlib.algorithms_guaranteed
hashlib.new(算法名, data=b") 生成一个使用该算法的Hash对象,data为bytes类型
hashlib.算法名(data=b") 生成一个使用该算法的Hash对象,data为bytes类型
Hash对象.digest() 返回Hash算法计算得到的值(bytes类型)
Hash对象.hexdigest() 返回Hash算法计算得到的值(str类型)
Hash对象.update(arg=None) 更新Hash对象
base64模块
简介
base64是一种用64个字符来表示任意二进制数据的方法(将二进制数据编码成ASCII字符)
使用了A-Z、a-z、0-9、 + 、 / 这64个字符
特点
用来将非ASCII字符的数据转换成ASCII字符的一种方法
常用于对URL的编码
可以将不可打印的二进制数据转化为可打印的字符串
API
base64.b64encode(s) 对二进制数据进行base64编码
base64.b64decode(s) 对通过base64编码的数据进行解码
Base64编码后的数据可能会含有 + / 两个符号,如果编码后的数据用于URL或文件的系统路径中,就可能导致Bug,所以base模块提供了专门编码url的方法
base64.urlsafe_ b64encode(s) 对URL进行base64编码
base64.urlsafe_ b64decode(s) 对URL进行base64解码