2018-11-20 json &base64 &hashlib
2018-11-20 本文已影响0人
太阳出来我爬山坡
1.json模块
json数据 就是遵循一种格式的数据。文本数据
json数据就是个字符串 可以表示 python中的数据
javascript 用户交互 对象 可以用 json数据表示
语法规范:
-数据有键值对组成
-键值对由逗号分隔
-大括号保存对象(字典)
-中括号保存数组(列表,元组)
-字符串必须用双引号(")
***值:字符串,数字,true,false,null,数组,对象(js)
python json
字典 对象
列表或元组 数组
字符串 字符串
int或float 数字
True或False true或false
None null
***前后端的交互最好的数据格式之一
python中利用json模块,来转换数据类型,和json字符串
json模块的方法:
1.json数据-》python对象
-json.loads(s):json字符串-》python对象
-json.load(s):json文件-》python对象
2.python对象-》json数据
-json.dumps(obj): python对象-》json字符串
-json.dump(obj, f): python对象-》json文件
2.base64模块
-用文本(ascii字符)来表示二进制数
64个字母来表示A-WXYZ a b c d e f g h i j-Z 0-9 + /
0 25 26 51 52 61 63 64
b'abc'
01100001 01100010 01100011 (24位)
011000 010110 001001 100011
24 22 9 35
Y W J j
-如果字节数不是3的倍数
b'ab' zai 字节的末尾用\x00 ,再到编码末尾加1到2个==
*** base64 编码后,+ /,在url中,不行的
如果要对url进行编码,专门的安全的url编码
本质上,就是将+和/ 用-和_取代
虽然,64ascii,可以自定义
不是加密算法
把小图片编码成base64
高级语言 会用 低级的方法
游戏开发,制造业,外包,金融,各行各业
全栈,小公司 全栈 大公司 后端api服务器开发,接口,实现一个什么功能
tornado 一个方法,一个类,。。。
3.hashlib模块
数据安全
加密,密码,锁 凯撒密码 算法
加密分类
-对称加密:数据的加密和解密用相同的密钥
-非对称加密:加密和解密用不同的密匙,公钥用于数据加密,私钥用于解密
-单向加密:只能加密,不能解密
Hash “散列”,摘要算法
任意长度的输入通过散列算法变换成固定长度的输出。压缩,有损的
特点: 32位hash算法 武汉大学 女博士 64位
-不可逆
-定长输出(输入不变,输出不变)
-抗修改性 输入的微小改变,哪怕只是一个bit位的修改,引起巨大的变化
-强碰撞性:很难找到 两端不同的数据,使他们的hash值相等,几乎是不可能
Hashlib的常用方法
md5 ——》32
防止篡改 电影母盘 软件 md5值