python json加密_python笔记-json-base64-hashlib

一、json

1.1 Json介绍

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。人类很容易读写。机器很容易解析和生成。它基于 JavaScript编程语言的一部分, 标准ECMA-262第3版 - 1999年12月。JSON是一种完全独立于语言的文本格式,但使用C语言系列程序员熟悉的约定,包括C,C ++,C#,Java,JavaScript,Perl,Python等等。这些属性使JSON成为理想的数据交换语言。

特点:

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

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

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

1.2 Json语法

语法规则:

数据由键值对组成

键值对由逗号分隔

大括号里保存对象

中括号里保存数组

注意:

字符串必须用双引号(即:”string”)来包括

值可以是字符串、数字、true、false、null、数组,或对象。

与python数据类型的对应:

Python

JSON

字典

对象

列表或元组

数组

字符串

字符串

int或float

数字

True或False

true或false

None

null

1.3 Python对Json数据处理处理

函数

解释

json.dump(obj, fp)

将 obj 序列化为 JSON 格式化流形式的 fp

json.dumps(obj)

将 obj 序列化为 JSON 格式的 str

json.load(fp)

将 fp (一个支持 .read() 并包含一个 JSON 文档的 text file 或者 binary file) 反序列化为一个 Python 对象。

json.loads(s)

将 s (一个包含 JSON 文档的 str, bytes 或 bytearray 实例) 反序列化为 Python 对象

import json

# 将python对象转化为json数据 indent实现缩进,ensure_ascii 是否用ascii解析

json.dumps(obj)

# 将python对象转化为json数据并保存到文件

json.dump(obj, fp)

# 将json字符串转化为python对象

json.loads(json_str)

# 读取json文件数据并转化为python对象

json.load(fp)

二、Base64模块

2.1 url编码

​正常的url中只能包含ASCII字符,也就是说,只能是字母,数字和一些字符,url编码就是为了解决url出现非ASCII字符的问题。

​其中base64是一种用64个字符来表示任意二进制数据的方式,(将二进制数据编码成ASCII字符)。

​使用了A-Z,a-z,0-9,+,/这64个字符

特点:

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

常用于对URL的编码

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

2.2 python中bash64模块

api

描述

base64.b64encode(s)

对二进制数据进行base64编码

base64.b64decode(s)

对通过base64编码的数据进行解码

base64.urlsafe_b64encode(s)

对URL进行base64编码

base64.urlsafe_b64decode(s)

解码

注意:

Base64编码后的数据可能会含有 + / 两个符号,如果编码后的数据用于URL或文件的系统路径中,

就可能导致Bug,所以base模块提供了专门编码url的方法

三、Hashlib

3.1 加密介绍

​数据时代,为了防止数据的泄露保障数据的安全,对数据的加密是是一个必不可少的环节。对于一些用户敏感的隐私数据加密更加的严格。

​保护数据最常用的方式就是加密。利用一些加密算法将数据打乱后在通过网络传输,当传输到目的地时,在使用解密算法将数据还原。

3.2 加密方式

对称加密

数据加密解密使用相同的密钥

非对称加密

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

单项加密

只能加密数据,而不能解密数据

3.3 hash结构

​散列函数,把任意长的数据,通过散列函数转化为一个固定长度的值,这个值基本是唯一的。

特点:

不可逆:无法根据散列值来还原原来的数据

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

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

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

3.4 Python 使用hash加密函数

Hashlib模块提供了许多供我们调用的hash算法,主要有:

md5

SHA系列:sha1, sha224, sha256, sha384, sha512

import hashlib

# 其他加密算法的使用方法和下面是一致的。

hash_md5 = hashlib.md5() # 生成md5对象

# 加密

hash_md5.update('string'.encode('utf-8'))

# hash_md5 = hashlib.md5('string'.encode('utf-8'))

# 获取加密数据

hash_md5.hexdigest() # 获取加密后str类型数据

hash_md5.digest() # 获取加密后bytes类型数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值