Python 对json文件加密和解密
#!/usr/bin/env python
# -*-coding:utf-8-*-"""
# File : Json文件加密解密.py
# Time :2022/6/30 22:58
# Author :Glad
# version :python 3.7.3
# Description:
"""import json, random
from Crypto.Cipher import DESdef generate_random_str(randomlength=8):"""生成一个指定长度的随机字符串"""random_str = ''base_str = 'ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789'length = len(base_str) - 1for i in range(randomlength):random_str += base_str[random.randint(0, length)]print("密钥key的值是:%s" % (random_str))return random_strdef file_length(text):"""如果text不是8的倍数【加密文本text必须为8的倍数!】,补足为8的倍数:param text::return: #padded_text:<class 'str'>"""while len(text) % 8 != 0:text += ' 'return textdef dict2json(file_name, the_dict):"""将字典文件写如到json文件中:param file_name: 要写入的json文件名(需要有.json后缀),str类型:param the_dict: 要写入的数据,dict类型:return: 1代表写入成功,0代表写入失败"""try:json_str = json.dumps(the_dict, indent=4, ensure_ascii=False)with open(file_name, 'w') as json_file:json_file.write(json_str)print("把字典数据写入json 文件,执行成功!!!")return 1except:return 0def data_type_conversion(json_path):"""Json文件转换成字符串:param file_path::return:"""with open(json_path, "r") as f:row_data = json.load(f) # 遍历json数据info_str = json.dumps(row_data) # 字典转json字符串 <class 'str'>return info_strdef file_encrypt(key,padded_text):"""文件加密:param self::param text::return:"""des = DES.new(key, DES.MODE_ECB) # 创建DES实例encrypted_text = des.encrypt(padded_text.encode('utf-8')) # 加密 #encrypted_text : <class 'bytes'>print("Json文件加密的数据是: %s" % (encrypted_text))return encrypted_textdef file_decrypt(key,encrypted_text):"""文件解密:param self::param text::return:"""des = DES.new(key, DES.MODE_ECB) # 创建DES实例plain_text = des.decrypt(encrypted_text).decode().rstrip('') # 解密 # plain_text: <class 'str'># dic_plain_text = ast.literal_eval(plain_text) # 字符串转字典 ,<class 'dict'>dic_plain_text = json.loads(plain_text) # 字符串转字典 ,<class 'dict'>print("Json文件解密的数据是: %s" % (dic_plain_text))return dic_plain_textif __name__ == '__main__':row_data = {}path = 'G:\\python_study\\com\\文件加密\\DES_文件加密\\service_account.json'to_path = 'G:\\python_study\\com\\文件加密\\DES_文件加密\\service_account_new.json'key_info = generate_random_str(8) # 密钥 8位或16位,必须为byteskey = key_info.encode('UTF-8') # key的类型是:<class 'bytes'>padded_text = file_length(data_type_conversion(path))info_encrypt = file_encrypt(key,padded_text)info_decrypt = file_decrypt(key,info_encrypt)dict2json(to_path, info_decrypt)
Python 对json文件加密和解密相关推荐
- 实用脚本!利用 Python 对 PDF 进行加密、解密操作,代码拿走就用!
来源/早起Python 本文将分享如何利用 Python 对 PDF 进行加密和解密操作,主要利用到之前多次介绍过的PyPDF2 模块. PDF 加密 在之前的文章PDF合并.拆分.水印.加密中简单提 ...
- tkinter实现文件加密和解密
源代码:https://gitee.com/mydreamambitious/file-encryption-and-decryption 注:这个代码和界面是做好的,但是还在进行优化和美化中.但是在 ...
- python读取中文文件乱码-详解Python的json文件读取及中文乱码显示问题解决方法...
Python的json文件读取及解决中文乱码显示问题 本文实例讲述了Python实现的json文件读取及中文乱码显示问题解决方法.分享给大家供大家参考,具体如下: city.json文件的内容如下: ...
- python读json文件中不同的数据类型_怎么使用python提取json文件中的字段
python中为什么用json有什么作用 python的json模块中如何将变量添加到里面 python的json模块第一个是要打开的文件,第二个是打开的操作,为什么会如果你早认清你在别人心中没那么重 ...
- python在json文件中查找指定数据_Python中json的取值 如何使用python提取json中指定字段的数据...
python中为什么用json有什么作用 如何用python读取json里面的值啊我爱你,所以我给了你伤害我的权力,只要我能忍受,我会一直陪伴着你,但你不能伤害我太多. 数据如下,我想要读取name. ...
- json 插入数据_让繁琐的工作自动化——python处理JSON文件
让繁琐的工作自动化--python处理JSON文件 不得不说,python真TMD香.由于python解析json过于简洁,我只好写个实例了,不然文章太短. 1.环境 python3.8 pychar ...
- PYTHON 处理JSON文件(新建key值Findex,并将歌手名字转换为大写首字母作为value值)
@PYTHON 处理JSON文件(新建key值Findex,并将歌手名字转换为大写首字母作为value值) 引入了第三方库 pypinyin 代码如下: import json import pypi ...
- python:json文件的保存与读取
介绍 json(JavaScript Object Notation, Java 脚本对象表示符)是一种特殊的数据格式,具有以下优点. (1)该数据格式独立于脚本语言(如c++,python,matl ...
- python修改json文件_python修改json文件的value实例方法
利用python修改json文件的value方法 做工程时遇到需要监听json文件,根据json文件中的key-value值作出相应处理的情形.为此写了修改json文件的python脚本供工程后续调用 ...
最新文章
- SQL Server中事务日志自动增长对性能的影响
- SaaS市场普及 网络推广策略最有效
- leetcode 357. Count Numbers with Unique Digits | 357. 计算各个位数不同的数字个数(Java)
- 【渝粤教育】国家开放大学2018年春季 3897T商务英语1 参考试题
- 内是不是半包围结构_轻钢别墅的体系结构
- hibernate多对一和一对多关联
- 顺丰同城:拟通过香港IPO发行1.31亿股H股 预期将于12月14日在港交所上市
- 分布式监控系统ganglia配置文档
- 移动Web界面样式-CSS3
- C/C++教程 第十二章 —— MFC的基本使用
- C语言开发七彩连珠游戏,七彩连珠游戏介绍 七彩连珠单机版运行及玩法介绍
- 什么叫手机android密码,手机这个密码必须设,99%的人不知道!
- 前端“智能”静态资源管理 - Onebox - 博客园
- 适合个人投资者的理财策略
- 从免费共享经济到知识付费系统,都是如何抓住时代风口的
- 获取CloudFlare上的所有域名的ID (zone_identifier) - by PHP
- zabbix的snmp自动发现
- ROS集成开发环境 --- RoboWare(安装及学习笔记)
- 认证管理(锐捷交换篇)
- 网页出现503 service unavailable是什么意思?怎么解决?