2018-11-13常用模块 Json base64 hashlib

JSON 常用的前后台数据交互格式一

  1. json 数据 就是遵循一种格式的数据.文本数据
    json数据就是个字符串 可以表示 python中的数据
    javascript 用户交互 对象 可以用json数据表示
    语法规范:
    -数据胡键值对组成
    -键值对由逗号分隔
    -大括号保存对象(字典)
    -中括号保存对象(例表,无组)
    -字符串必须用双引号(")
    ***值的类型:字符串,数字,true ,false,null,数据,对象(js)
    python数据类型 VS json格式
    字典 对象
    列表或元组 数组
    字符串 字符串
    int 或float 数字
    True 或False true false
    None null

python 中利用json模块来转换数据类型 与 json字符串
json模块的方法:
1.json 数据 ---> python数据
json.loads("字符串") --->转换成 python数据.
json.load('json文件')---->转换成python数据.
2.python数据---->转换成json 数据
json.dumps(obj) --->转换成json数据
json.dump(ojb,f) ---->转换成json文件

常见 转换 报错(转换的内容不符合json 的要求)

JSONDecodeError: Expecting value: line 1 column 1 (char 0)
例 ss = ' True'
print(json.loads(ss)) 会报错!!!!
ss = "[1,2,23,4]" 或 ss ='{"key":123}' 或 ss = ' "aldjflaf123" '就不会.


'''# json字符串转换成 python数据.
ss = "null"
res = json.loads(ss)
print(res)
'''
结果: None

'''# json字符串转换成 python数据.
ss = "true"
res = json.loads(ss)
print(res)
'''
结果: True

base64 模块

1.用文本(ascII 字符)来表示二进制数
一个byte字节为8位 base64 把字节 划分成 6位段 2的6次方= 64
64个字母来表示 A-Z a-z 0-9 + /
A =0 Z =25 a=26 z =51 0=52 9=61 +=62 /=63
b'abc' 字节类型的abc 用二进制表示:
01100001 01100010 01100011 (24位) abc
011000 010110 001001 100011 (4个6位) Y W J j

  • 如果字节数不是3的倍数
    b'ab' 在字节的末尾用\x00 再到编码末尾加1到2个==

***base64编码后, + / 在url中,不行的. + /在url 中是特殊符合
如果要对url 进行编码,用专门的安全的url编码
本质 上就是将 + 和 / 用 - _取代 url 重算时 使用 base64.urlsafe_b64encode(url)
虽然64 ascii 可以自定义
base64不是加密算法
把小图片编码成base64

hashlib 模块

数据安全
加密,密码,锁,算法.
加密分类
-对称加密 :数据的加密和解密用相同的密钥
-非对称加密:加密和解密用不同的密钥,公钥用于数据加密,私钥用于解密
-单向加密:只能加密,不能解密
Hash "散列" ,摘要算法.
任意长度 的输入通过散列算法变换成固定长度的输出.压缩,有损的
特点:
-不可逆
-定长输出(输入不变,输出不变)
-抗修改性(输入的微小变化,哪怕只是一个bit位的修改,引起巨大的变化)
-强碰撞性:很难找到 两段不同的数据 ,使他们的hash值相等,几乎不可能

hashlib 的常用方法
md5 32位
防止篡改 电影母盘 软件 md5值
hashlib.md5()
import hashlib
ss = 'zhuoda'.encode('utf-8') #字节
'''

hashstr = hashlib.new('md5',ss) #速度慢,不用,用下面这种

hashstr = hashlib.md5(ss)
print(hashstr) #哈希对象
print(hashstr.hexdigest()) #用hexdigest()方法 字符串格式输出 默认32位
print(hashstr.digest()) #用二进制形式输出
'''

加盐

username = "jsonblack"
password = ''123456'
salt = username + 'hello world!'
new_password = (password + salt).encode() #转为 字节类型 b'xxx'
hashlib.md5(new_password) #得到md5加密后的 32位字符串 存入数据库做为密码,当然#也可以截取其中的20位做为验证值 数据存到数据库.或者再随机加2位.加到中间,从第二开#始加.==

一般用来对密码 进行加密的

hashlib.pbkdf2_hmac('md5',password, salt ,10000)
hashlib.pbkdf2_hmac()方法 用md5 方式 ,password 为原始, salt 盐, 10000加密次数

作业

data = {
"name": "juhao",
"age": 18,
"feature" : ["高", "富", "帅"]
}
在程序中将这个字典转化为json并存入文件内,然后再从这个文件中读取出‘帅’这个字符打印出来
设计一个验证用户登录的函数,根据用户输入的口令是否正确,返回True或False

-- coding: utf-8 --

db = {
'xiaolan': 'e10adc3949ba59abbe56e057f20f883e',
'xiaodong': '21218cca77804d2ba1922c33e0151105',
'xiaople': '52c69e3a57331081823331c4e69d3f2e'
}
def login(user, password):
pass

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容