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解码


Python的 json 、 hashlib 、 Base64 模块的更多相关文章
- python(6)- json和pickle模块
这是用于序列化的两个模块: json: 用于字符串和python数据类型间进行转换 pickle: 用于python特有的类型和python的数据类型间进行转换 Json模块提供了四个功能:dumps ...
- python基础-json、pickle模块
json.pickle区别 总结: """ json: 1.不是所有的数据类型否可以序列化,序列化返回结果为字符串 2.不能多次对同一文件序列化 3.json数据可以跨语 ...
- python之json、pickle模块
一.json模块 之前我们学习过用eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候, ...
- python值json与pickle模块
#json 是用来序列化对象的 # 只有2个方法,序列化与反序列化 # 但是不能序列化类 与 函数 import json dict={"key1":[1,2,3,4,5]} f ...
- python 之 json 与pickle 模块
序例化:将对象转换为可通过网络传输或可以存储到本地磁盘的数据格式(如:XML.JSON或特定格式的字节串)的过程称为序列化:反之,则称为反序列化. 1.[JSON] import json dic={ ...
- python中常用的base64 md5 aes des crc32等的加密解密
1.base64 Python内置的base64模块可以实现base64.base32.base16.base85.urlsafe_base64的编码解码,python 3.x通常输入输出都是二进制形 ...
- 常用模块之 os,json,shelve,xml模块
os 即操作系统 在 os 中提供了很多关于文件,文件夹,路径处理的函数 这是我们学习的重点 os.path 是os模块下专门用于处理路径相关的 python是一门跨平台语言,由于每个平台路径规则不同 ...
- Python之数据加密与解密及相关操作(hashlib模块、hmac模块、random模块、base64模块、pycrypto模块)
本文内容 数据加密概述 Python中实现数据加密的模块简介 hashlib与hmac模块介绍 random与secrets模块介绍 base64模块介绍 pycrypto模块介绍 总结 参考文档 提 ...
- 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 ...
随机推荐
- SQL Server 数据类型详解
引言 SQL Server是我们日常工作中经常用到的数据库,也是商业系统运用最广泛的数据库之一.如何构建合理.高效.节省空间的数据库?是非常考验程序的基本功底,因为数据库是程序的根基,直接影响着系统效 ...
- 2018最新cocoapods详细安装和使用
1查看当前终端里存在的源 终端输入:$ gem sources -l2移除淘宝镜像 $ gem sources --remove https://rubygems.org/ 3装上目前能用的源 终端输 ...
- JS 错误
JS 错误 try 语句测试代码块的错误. catch 语句处理错误. throw 语句创建自定义错误. 错误一定会发生 当 JavaScript 引擎执行 JavaScript 代码时,会发生各种错 ...
- 微信小程序通过getPhoneNumber后台PHP解密获取用户手机号码
之前做的版本用户这块是以获取用户openid为凭证,最近改版重新整理了一下,新增注册登录以手机号码为主, 两种(正常注册手机号码-密码+一键获取当前用户手机号码) getPhoneNumber这个组件 ...
- acwing 81. 扑克牌的顺子
地址 https://www.acwing.com/problem/content/77/ 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的. 2-10为数字本身,A为1,J为11, ...
- 详解C++ STL map 容器
详解C++ STL map 容器 本篇随笔简单讲解一下\(C++STL\)中的\(map\)容器的使用方法和使用技巧. map容器的概念 \(map\)的英语释义是"地图",但\( ...
- As Simple as One and Two
time limit per test3 secondsmemory limit per test256 megabytesinput: standard inputoutput: standard ...
- Linux 的 Crond(二)
最近由于工作中用到了crond,之前对crond不是很了解,只知道咋用,但是这次需要考虑好多情况,所以又深入了解了一下crond,下面就以下几个问题来谈谈crond. crond 中指定的job,如果 ...
- DRF--ModelSerializer
前戏 在之前我们写序列化器的时候,写的很low,遇到反序列化的有时候还需要重写该字段,用post请求的时候,还要重写create方法,用put请求的时候,还需要重写update方法.总而言之,写起来很 ...
- golang数据结构之递归解决迷宫问题
简单来说:递归就是函数/方法自己调用自己,只是每次传入不同的变量. 递归可以解决各种数学问题:n皇后问题.阶乘问题.汉诺塔.迷宫问题.球和篮子问题等等: maze.go package maze im ...