Python中如何使用hashlib和base64模块处理5.json文件?

2026-06-11 10:212阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1043个文字,预计阅读时间需要5分钟。

Python中如何使用hashlib和base64模块处理5.json文件?

5.1 JSON 对象定义:

JavaScript:javascriptvar teacher_1={ name: 'juhao', age: 18, feature: ['高', '富', '帅']}

JSON 字符串:json{name:juhao,age:18,feature:[高,富,帅]}

Python 字典:python{'name': 'juhao', 'age': 18, 'feature': ['高', '富', '帅']}

5.1 json

JS对象

var teacher_1 = {
name: ‘juhao’,
age: 18,
feature : [‘高’, ‘富’, ‘帅’]
}

JSON字符串

{
“name”: “juhao”,
“age”: 18,
“ feature “ : [‘高’, ‘富’, ‘帅’]
?
}

Python字典

{
‘name’: ‘juhao’,
‘age’: 18
‘feature’ : [‘高’, ‘富’, ‘帅’]
?
}

注意

1.字符串必须用双引号(即:””)来包括
?
2.值可以是字符串、数字、true、false、null、列表,或字典。

  • 1.将python数据转化为json:

    json.dumps(obj) Indent实现缩进(一般是4), json.dumps(obj,indent = 4) ensure_ascii 是否用ascii解析 ensure_ascii = False

  • 2.将json数据转换为python的数据:

    2.json.loads(s)

  • 3.转换为json并保存到文件中

    3.json.dump(obj, fp)

  • 4.从文件中读取json,并转化为python数据

    4.json.load(fp)


with open (‘json_test‘,‘w+‘)as f:
json.dump(obj,indent = 4,ensure_ascii = False,fp=f)

with open (‘json_test‘,‘r+‘)as f:
res = json.load(fp=f)
print res

5.2 hashlib,base64模块

1.hashlib (MD5)

hash算法就是-种将任意长度的数据变成一个长度固定的数据的函数

  • 1.对称加密:

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

  • 2.非对称加密:

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

  • 3.单向加密:

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

2.Hash结构:

不可逆:无法根据散列值来还原原来的数据
?
定长输出:无论输入的原始数据有多长,结果长度是相同的
?
抗修改性:输入的微小改变,哪怕只有一个字符,会引起结果的巨大改变
?
强碰撞性:很难找到两段内容不同的数据,使他们产生的hash值一致,几乎不可能

Hashlib模块提供了许多hash算法,主要有:

1.md5
2.SHA系列:sha1, sha224, sha256, sha384, sha512

api 描述:

hashlib.new(name, data=b”) 生成一个hash对象
hashlib.hash算法名(data=b”) 生成一个使用该算法的hash对象
Hash对象.update(arg=None) 更新hash对象
Hash对象.digest() 返回Hash算法计算得到的值(bytes类型)
?
Hash对象.hexdigest() 返回Hash算法计算得到的值(str类型)

?
import hashlib

result = hashlib.new(‘md5‘,‘南北‘.encode())

result = hashlib.md5(‘南北‘.encode())

print(result.digest())
print(result.hexdigest())

result = hashlib.md5()
result.update(‘南北‘.encode())

print(result.digest())
print(result.hexdigest())
?

3.base64

base64是一种用64个字符来表示任意二 进制数据的方法, (将二 进制数据编码成ASCII字符)使用了A-Z,a-z,0-9,+ ,/这64个字符

Python中如何使用hashlib和base64模块处理5.json文件?

特点:

用来将非ASCII字符的数据转换成ASCII字符的一种方法
?
常用于对URL的编码
?
可以将不可打印的二进制数据转化为可打印的字符串

api 描述:

base64.b64encode(s) 对二进制数据进行base64编码
base64.b64decode(s) 对通过base64编码的数据进行解码
?
base64.urlsafe_b64encode(s) 对URL进行base64编码
base64.urlsafe_b64decode(s) 解码


import base64
?
data = ‘爱我‘
res = base64.b64encode(data.encode)


?


import json
import base64

data={
‘name‘:‘nanbei‘,
‘age‘:10,
‘feature‘:["gao","fu","shuai"]
}

with open(‘my_json,txt‘,‘w‘)as f:
json.dump(data,f,ensure_ascii=False)

with open(‘my_json,txt‘,‘r‘)as f:
result=json.load(f)
print(type(result))
print(result[‘feature‘][2])

with open(‘my_json,txt‘,‘rb‘)as f:
result=base64.b64encode(f.read())

with open(‘my_json,txt‘,‘wb‘)as f:
f.write(result)

with open(‘my_json,txt‘,‘rb‘)as f:
print(base64.b64decode(f.read()).decode())
?
?

本文共计1043个文字,预计阅读时间需要5分钟。

Python中如何使用hashlib和base64模块处理5.json文件?

5.1 JSON 对象定义:

JavaScript:javascriptvar teacher_1={ name: 'juhao', age: 18, feature: ['高', '富', '帅']}

JSON 字符串:json{name:juhao,age:18,feature:[高,富,帅]}

Python 字典:python{'name': 'juhao', 'age': 18, 'feature': ['高', '富', '帅']}

5.1 json

JS对象

var teacher_1 = {
name: ‘juhao’,
age: 18,
feature : [‘高’, ‘富’, ‘帅’]
}

JSON字符串

{
“name”: “juhao”,
“age”: 18,
“ feature “ : [‘高’, ‘富’, ‘帅’]
?
}

Python字典

{
‘name’: ‘juhao’,
‘age’: 18
‘feature’ : [‘高’, ‘富’, ‘帅’]
?
}

注意

1.字符串必须用双引号(即:””)来包括
?
2.值可以是字符串、数字、true、false、null、列表,或字典。

  • 1.将python数据转化为json:

    json.dumps(obj) Indent实现缩进(一般是4), json.dumps(obj,indent = 4) ensure_ascii 是否用ascii解析 ensure_ascii = False

  • 2.将json数据转换为python的数据:

    2.json.loads(s)

  • 3.转换为json并保存到文件中

    3.json.dump(obj, fp)

  • 4.从文件中读取json,并转化为python数据

    4.json.load(fp)


with open (‘json_test‘,‘w+‘)as f:
json.dump(obj,indent = 4,ensure_ascii = False,fp=f)

with open (‘json_test‘,‘r+‘)as f:
res = json.load(fp=f)
print res

5.2 hashlib,base64模块

1.hashlib (MD5)

hash算法就是-种将任意长度的数据变成一个长度固定的数据的函数

  • 1.对称加密:

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

  • 2.非对称加密:

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

  • 3.单向加密:

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

2.Hash结构:

不可逆:无法根据散列值来还原原来的数据
?
定长输出:无论输入的原始数据有多长,结果长度是相同的
?
抗修改性:输入的微小改变,哪怕只有一个字符,会引起结果的巨大改变
?
强碰撞性:很难找到两段内容不同的数据,使他们产生的hash值一致,几乎不可能

Hashlib模块提供了许多hash算法,主要有:

1.md5
2.SHA系列:sha1, sha224, sha256, sha384, sha512

api 描述:

hashlib.new(name, data=b”) 生成一个hash对象
hashlib.hash算法名(data=b”) 生成一个使用该算法的hash对象
Hash对象.update(arg=None) 更新hash对象
Hash对象.digest() 返回Hash算法计算得到的值(bytes类型)
?
Hash对象.hexdigest() 返回Hash算法计算得到的值(str类型)

?
import hashlib

result = hashlib.new(‘md5‘,‘南北‘.encode())

result = hashlib.md5(‘南北‘.encode())

print(result.digest())
print(result.hexdigest())

result = hashlib.md5()
result.update(‘南北‘.encode())

print(result.digest())
print(result.hexdigest())
?

3.base64

base64是一种用64个字符来表示任意二 进制数据的方法, (将二 进制数据编码成ASCII字符)使用了A-Z,a-z,0-9,+ ,/这64个字符

Python中如何使用hashlib和base64模块处理5.json文件?

特点:

用来将非ASCII字符的数据转换成ASCII字符的一种方法
?
常用于对URL的编码
?
可以将不可打印的二进制数据转化为可打印的字符串

api 描述:

base64.b64encode(s) 对二进制数据进行base64编码
base64.b64decode(s) 对通过base64编码的数据进行解码
?
base64.urlsafe_b64encode(s) 对URL进行base64编码
base64.urlsafe_b64decode(s) 解码


import base64
?
data = ‘爱我‘
res = base64.b64encode(data.encode)


?


import json
import base64

data={
‘name‘:‘nanbei‘,
‘age‘:10,
‘feature‘:["gao","fu","shuai"]
}

with open(‘my_json,txt‘,‘w‘)as f:
json.dump(data,f,ensure_ascii=False)

with open(‘my_json,txt‘,‘r‘)as f:
result=json.load(f)
print(type(result))
print(result[‘feature‘][2])

with open(‘my_json,txt‘,‘rb‘)as f:
result=base64.b64encode(f.read())

with open(‘my_json,txt‘,‘wb‘)as f:
f.write(result)

with open(‘my_json,txt‘,‘rb‘)as f:
print(base64.b64decode(f.read()).decode())
?
?