欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python的 json 、 hashlib 、 Base64 模块

程序员文章站 2023-02-03 16:35:11
json模块 简介 全称"JavaScript Object Notation" (JavaScript对象表示法)它是一种基于文本,独立于语言的轻量级数据交换格式 以易于让人阅读的文字为基础,用来传输由属性值或者序列性的值组成的数据对象(键值对) 特点 轻量级的文本数据交换格式 易于人类阅读和编写 ......

json模块

简介

全称"javascript object notation" (javascript对象表示法)它是一种基于文本,独立于语言的轻量级数据交换格式

以易于让人阅读的文字为基础,用来传输由属性值或者序列性的值组成的数据对象(键值对)

 

特点

轻量级的文本数据交换格式

易于人类阅读和编写,同时也易于机器解析和生成

web世界当中最理想的数据交换格式

 

语法规则

数据由键值对组成

键值对由逗号分隔

大括号里保存对象

中括号里保存数组(pyton中的的列表或元组)

 

字符串必须用双引号

 

api

json.dumps(obj)           将python数据转化为json    indent 实现缩进,ensure_ascii 是否用ascii解析 

Python的 json 、 hashlib 、 Base64 模块

Python的 json 、 hashlib 、 Base64 模块

json.loads(s)                将json数据转换为python的数据

Python的 json 、 hashlib 、 Base64 模块

Python的 json 、 hashlib 、 Base64 模块

json.dump(obj, fp)       转换为json并保存到文件中

Python的 json 、 hashlib 、 Base64 模块

Python的 json 、 hashlib 、 Base64 模块

json.load(fp)                从文件中读取json,并转化为python数据

Python的 json 、 hashlib 、 Base64 模块

Python的 json 、 hashlib 、 Base64 模块

 

 

 

hashlib模块

数据加密概念

对称加密:数据加密解密使用相同的密钥

非对称加密:加密和解密用两把不同的密钥,公钥用于加密数据,私钥用于解密数据

单向加密:只能加密数据,而不能解密数据

 

特点

定长输出:无论输入的原始数据有多长,结果长度是相同的

抗修改性:输入的微小改变,哪怕只有一个字符,也会引起结果的巨大改变

强碰撞性:很难找到两段内容不同的数据,使他们产生的hash值一致,几乎不可能

 

api

主要使用md5        其它:sha系列、blake系列

查询所有的哈希算法       hashlib.algorithms_guaranteed

Python的 json 、 hashlib 、 Base64 模块

Python的 json 、 hashlib 、 Base64 模块

hashlib.new(算法名, data=b")   生成一个使用该算法的hash对象,data为bytes类型

hashlib.算法名(data=b")      生成一个使用该算法的hash对象,data为bytes类型

hash对象.digest()        返回hash算法计算得到的值(bytes类型)

hash对象.hexdigest()          返回hash算法计算得到的值(str类型)

Python的 json 、 hashlib 、 Base64 模块

Python的 json 、 hashlib 、 Base64 模块

hash对象.update(arg=none)    更新hash对象

Python的 json 、 hashlib 、 Base64 模块

Python的 json 、 hashlib 、 Base64 模块

 

 

 

base64模块

简介

base64是一种用64个字符来表示任意二进制数据的方法(将二进制数据编码成ascii字符)

使用了a-z、a-z、0-9、 + 、 / 这64个字符

 

特点

用来将非ascii字符的数据转换成ascii字符的一种方法

常用于对url的编码

可以将不可打印的二进制数据转化为可打印的字符串

 

api

base64.b64encode(s)           对二进制数据进行base64编码

base64.b64decode(s)           对通过base64编码的数据进行解码

Python的 json 、 hashlib 、 Base64 模块

Python的 json 、 hashlib 、 Base64 模块

base64编码后的数据可能会含有 + / 两个符号,如果编码后的数据用于url或文件的系统路径中,就可能导致bug,所以base模块提供了专门编码url的方法

base64.urlsafe_ b64encode(s)        对url进行base64编码

base64.urlsafe_ b64decode(s)        对url进行base64解码

Python的 json 、 hashlib 、 Base64 模块

Python的 json 、 hashlib 、 Base64 模块