#!/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文件加密和解密相关推荐

  1. 实用脚本!利用 Python 对 PDF 进行加密、解密操作,代码拿走就用!

    来源/早起Python 本文将分享如何利用 Python 对 PDF 进行加密和解密操作,主要利用到之前多次介绍过的PyPDF2 模块. PDF 加密 在之前的文章PDF合并.拆分.水印.加密中简单提 ...

  2. tkinter实现文件加密和解密

    源代码:https://gitee.com/mydreamambitious/file-encryption-and-decryption 注:这个代码和界面是做好的,但是还在进行优化和美化中.但是在 ...

  3. python读取中文文件乱码-详解Python的json文件读取及中文乱码显示问题解决方法...

    Python的json文件读取及解决中文乱码显示问题 本文实例讲述了Python实现的json文件读取及中文乱码显示问题解决方法.分享给大家供大家参考,具体如下: city.json文件的内容如下: ...

  4. python读json文件中不同的数据类型_怎么使用python提取json文件中的字段

    python中为什么用json有什么作用 python的json模块中如何将变量添加到里面 python的json模块第一个是要打开的文件,第二个是打开的操作,为什么会如果你早认清你在别人心中没那么重 ...

  5. python在json文件中查找指定数据_Python中json的取值 如何使用python提取json中指定字段的数据...

    python中为什么用json有什么作用 如何用python读取json里面的值啊我爱你,所以我给了你伤害我的权力,只要我能忍受,我会一直陪伴着你,但你不能伤害我太多. 数据如下,我想要读取name. ...

  6. json 插入数据_让繁琐的工作自动化——python处理JSON文件

    让繁琐的工作自动化--python处理JSON文件 不得不说,python真TMD香.由于python解析json过于简洁,我只好写个实例了,不然文章太短. 1.环境 python3.8 pychar ...

  7. PYTHON 处理JSON文件(新建key值Findex,并将歌手名字转换为大写首字母作为value值)

    @PYTHON 处理JSON文件(新建key值Findex,并将歌手名字转换为大写首字母作为value值) 引入了第三方库 pypinyin 代码如下: import json import pypi ...

  8. python:json文件的保存与读取

    介绍 json(JavaScript Object Notation, Java 脚本对象表示符)是一种特殊的数据格式,具有以下优点. (1)该数据格式独立于脚本语言(如c++,python,matl ...

  9. python修改json文件_python修改json文件的value实例方法

    利用python修改json文件的value方法 做工程时遇到需要监听json文件,根据json文件中的key-value值作出相应处理的情形.为此写了修改json文件的python脚本供工程后续调用 ...

最新文章

  1. SQL Server中事务日志自动增长对性能的影响
  2. SaaS市场普及 网络推广策略最有效
  3. leetcode 357. Count Numbers with Unique Digits | 357. 计算各个位数不同的数字个数(Java)
  4. 【渝粤教育】国家开放大学2018年春季 3897T商务英语1 参考试题
  5. 内是不是半包围结构_轻钢别墅的体系结构
  6. hibernate多对一和一对多关联
  7. 顺丰同城:拟通过香港IPO发行1.31亿股H股 预期将于12月14日在港交所上市
  8. 分布式监控系统ganglia配置文档
  9. 移动Web界面样式-CSS3
  10. C/C++教程 第十二章 —— MFC的基本使用
  11. C语言开发七彩连珠游戏,七彩连珠游戏介绍 七彩连珠单机版运行及玩法介绍
  12. 什么叫手机android密码,手机这个密码必须设,99%的人不知道!
  13. 前端“智能”静态资源管理 - Onebox - 博客园
  14. 适合个人投资者的理财策略
  15. 从免费共享经济到知识付费系统,都是如何抓住时代风口的
  16. 获取CloudFlare上的所有域名的ID (zone_identifier) - by PHP
  17. zabbix的snmp自动发现
  18. ROS集成开发环境 --- RoboWare(安装及学习笔记)
  19. 认证管理(锐捷交换篇)
  20. 网页出现503 service unavailable是什么意思?怎么解决?

热门文章

  1. C语言 利用函数计算素数个数并求和
  2. 英孚教育APP应用获全球杰出商业银奖
  3. 利用snpEff对基因型VCF文件进行变异注释的详细方法
  4. 爱之树(二叉树建树+搜索)
  5. 访客模式 无痕模式 区别_访客设计模式示例
  6. vlc插件详细使用说明
  7. Ka波段卫星通信小尺寸无线电设计
  8. Java笔记(2)--java基础语法
  9. 交易结果=市场理解×(交易策略+自我认识)
  10. cnpm不是内部命令的解决方案:配置环境变量【推荐】