Python如何加密保存JSON文件
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,在Python中,我们可以使用json
模块来处理JSON数据,为了保护JSON文件的安全性,我们可以使用加密算法对数据进行加密,本文将介绍如何使用Python对JSON文件进行加密和保存。
1、安装加密库
我们需要安装一个加密库,如cryptography
,在命令行中输入以下命令进行安装:
pip install cryptography
2、生成密钥
在使用加密库之前,我们需要生成一个密钥,这里我们使用Fernet
类来生成一个对称加密密钥。
from cryptography.fernet import Fernet key = Fernet.generate_key() print("密钥:", key)
3、加密数据
接下来,我们使用Fernet
类对JSON数据进行加密,我们需要将JSON数据转换为字符串,然后使用密钥对其进行加密,我们将加密后的数据写入文件。
import json from cryptography.fernet import Fernet 将JSON数据转换为字符串 data = {"name": "张三", "age": 30} json_str = json.dumps(data) 使用密钥对数据进行加密 cipher_suite = Fernet(key) encrypted_data = cipher_suite.encrypt(json_str.encode()) print("加密后的数据:", encrypted_data)
4、保存加密后的文件
将加密后的数据写入文件,我们可以使用open()
函数以二进制模式打开文件,然后将加密后的数据写入文件,关闭文件。
with open("encrypted_data.bin", "wb") as f: f.write(encrypted_data)
5、读取并解密文件
要读取并解密文件,我们需要先从文件中读取加密后的数据,然后使用密钥对其进行解密,将解密后的数据转换为JSON对象。
从文件中读取加密后的数据 with open("encrypted_data.bin", "rb") as f: encrypted_data = f.read() 使用密钥对数据进行解密 decipher_suite = Fernet(key) decrypted_data = decipher_suite.decrypt(encrypted_data).decode() print("解密后的数据:", decrypted_data)
6、将解密后的数据转换为JSON对象并打印
我们将解密后的数据转换为JSON对象并打印出来,由于我们使用的是字符串格式的JSON数据,所以需要先将其转换为字典对象,我们可以使用json.loads()
函数将字典对象转换为JSON对象。
将解密后的数据转换为字典对象并打印 data_dict = json.loads(decrypted_data) print("解密后的字典对象:", data_dict)
相关问题与解答
1、如何从加密后的JSON文件中恢复原始数据?
答:从加密后的JSON文件中恢复原始数据的方法与上述过程相反,我们需要从文件中读取加密后的数据,然后使用密钥对其进行解密,接着,将解密后的数据转换为JSON对象并打印出来,将字典对象转换回原始的JSON数据,具体操作如下:
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/228479.html