1、建立两个文件jiami.py jiemi.py
2、代码实现(能运行,但有瑕疵,还没完全改好)
加密

from Cryptodome.Cipher import AES
import operator                     # 导入 operator,用于比较原始数据与加解密后的数据
import time
from argparse import ArgumentParserAES_BLOCK_SIZE = AES.block_size     # AES 加密数据块大小, 只能是16
AES_KEY_SIZE = 16                   # AES 密钥长度(单位字节),可选 16、24、32,对应 128、192、256 位密钥
key = "ok let's go"                 # AES 加解密密钥# 待加密文本补齐到 block size 的整数倍
def PadTest(bytes):while len(bytes) % AES_BLOCK_SIZE != 0:     # 循环直到补齐 AES_BLOCK_SIZE 的倍数bytes += ' '.encode()                   # 通过补空格(不影响源文件的可读)来补齐return bytes                                # 返回补齐后的字节列表# 待加密的密钥补齐到对应的位数
def PadKey(key):if len(key) > AES_KEY_SIZE:                 # 如果密钥长度超过 AES_KEY_SIZEreturn key[:AES_KEY_SIZE]               # 截取前面部分作为密钥并返回while len(key) % AES_KEY_SIZE != 0:         # 不到 AES_KEY_SIZE 长度则补齐key += ' '.encode()                     # 补齐的字符可用任意字符代替return key                                  # 返回补齐后的密钥# AES 加密
def EnCrypt(key, bytes):myCipher = AES.new(key, AES.MODE_ECB)       # 新建一个 AES 算法实例,使用 ECB(电子密码本)模式encryptData = myCipher.encrypt(bytes)       # 调用加密方法,得到加密后的数据return encryptData                          # 返回加密数据# 主函数,从这里开始执行
if __name__ == '__main__':parser = ArgumentParser(description="这是RSA加密程序.")parser.add_argument("-p", "--plain", type=str, default=r"./test1.txt", help="明文路径")parser.add_argument("-c", "--cipher", type=str, default=r"./cipher1.txt", help="密文输出路径")parser.add_argument("--public", type=str, default=r"./public1.pem", help="加密密钥路径")parser.add_argument("--cerlen", type=int, default=1024, help="证书key位数")args = parser.parse_args()with open(args.plain, 'rb') as f:          # 以二进制模式打开文件bytes = f.read()                                # 将文件内容读取出来到字节列表中print('源文件长度:{}'.format(len(bytes)))key = PadKey(key.encode())                          # 将密钥转换位字节列表并补齐密钥with open(args.public, "wb") as f:f.write(key)bytes = PadTest(bytes)                              # 补齐原始数据print('补齐后的源文件长度:{}'.format(len(bytes)))encryptTest = EnCrypt(key, bytes)                   # 利用密钥对原始数据进行加密with open(args.cipher, "wb") as f:f.write(encryptTest)  # 加密好的密文文件

解密

from Cryptodome.Cipher import AES
import operator                     # 导入 operator,用于比较原始数据与加解密后的数据
import time
from argparse import ArgumentParser# 主函数,从这里开始执行
if __name__ == '__main__':parser = ArgumentParser(description="这是RSA解密程序.")parser.add_argument("-c", "--cipher", type=str, default=r"./cipher1.txt", help="密文路径")parser.add_argument("-p", "--plain", type=str, default=r"./testjiemi1.txt", help="明文输出路径")parser.add_argument("--private", type=str, default=r"./public1.pem", help="解密密钥路径")parser.add_argument("--cerlen", type=int, default=1024, help="证书key位数")args = parser.parse_args()with open(args.cipher, 'rb') as f:          # 以二进制模式打开文件bytes = f.read()                                # 将文件内容读取出来到字节列表中print('源文件长度:{}'.format(len(bytes)))with open(args.private, "rb") as f:key = f.read()myCipher = AES.new(key, AES.MODE_ECB)bytes1 = myCipher.decrypt(bytes) # 利用密钥对加密的数据进行解密with open("testjiemi1.txt", "wb") as f:f.write(bytes1)  # 解密好的密文文件

参考链接:
https://blog.csdn.net/qq_29225913/article/details/108439185?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_v2~rank_aggregation-2-108439185.pc_agg_rank_aggregation&utm_term=aes%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86%E8%A7%A3%E5%AF%86python&spm=1000.2123.3001.4430

对称加密AES代码实现,实现文件加密与解密相关推荐

  1. 非对称加密RSA文本和Excel文件加密练习

    package com;import cn.hutool.core.codec.Base64; import cn.hutool.core.io.FileUtil; import cn.hutool. ...

  2. win11文件夹怎么加密?win11系统自带文件加密的方法步骤

    win11文件夹怎么加密?win11系统自带文件加密的方法步骤!升级Win11系统之后,因为换了新的系统,界面变了,设置改变了许多,所以很多功能不会使用了.比如今天要给大家说的,win11怎么给文件夹 ...

  3. 设计文件加密服务器,如何设计数据库文件加密系统

    据有关资料报道,计算机犯罪80%来自系统内部.实现数据库文件加密以后,各用户(或用户组)的数据用自己的密钥加密,其他用户无法对其进行解密,保护了用户的秘密.另外,数据库的备份内容也可以是密文,能够减少 ...

  4. matlab中P代码即P文件加密与逆向工程探讨

    P代码机制介绍 p意思是预解析(preparsed version).即将.m文件里的代码预解析一遍,生成p文件.当再次调用时,实际上调用的就是.p文件.当MATLAB将某文件转换为p代码文件时,该文 ...

  5. 勒索病毒服务器文件加密后缀,WannaCry勒索病毒文件加密密码结构

    引言勒索病毒Wannacry爆发已经过去一周了,由于该病毒采用加密用户文件方式进行勒索,许多朋友对该病毒文件加解密过程比较感兴趣.在已见到的病毒分析报告[1-4]中对文件加解密过程描述的比较零散.为便 ...

  6. c语言文件加密大写字母,C语言 文件加密解密

    #includejiemi() { int k,l; char fn[40],fs[40]; char ch,mima[40],x; file *f1,*f2; printf("输入要解密的 ...

  7. hppt加密 java代码_Http Sampler扩展(加密处理)

    自动化测试或者性能测试过程中,经常遇到业务数据被加密等需求,面对这样需求可以通过BeanShell 和Java Sampler等方式解决 .无论哪种方式均需多次代码编写.同时bean shell脚本语 ...

  8. 学Python爬虫,不看看m3u8文件如何加密?i春秋 m3u8 文件加密解析

    文章目录 ⛳️ 实战场景 ⛳️ digest 实战扣取过程 ⛳️ 实战场景 本次实战目标站点为 https://www.ichunqiu.com/courses/qmxc,随机寻找一门课程点击播放,然 ...

  9. java对excel加密_java poi对Excel文件加密

    @SuppressWarnings("deprecation") @Override public InputStream exportItemProjectExcel(List ...

最新文章

  1. http和https的区别 与 SSL/TLS协议运行机制的概述
  2. c3074 无法使用带圆括号的_助力带分类简介
  3. Android开发之设置Dialog外部页透明的方法亲测可用
  4. Android之解决键盘覆盖编辑框问题
  5. leetcode292. Nim 游戏
  6. 网管员、工程师 、专家 的岗位描述
  7. sklearn炼丹术之——交叉验证Cross-validation: evaluating estimator performance
  8. UVA355 UVALive5249 The Bases Are Loaded【进制】
  9. network 网络带宽
  10. Lua 包管理 - Luarocks 使用指南
  11. ArcGIS Pro 关于地震数据可视化制作流程(附练习数据下载)
  12. 用hc05蓝牙模块,开发了几个安卓app了,越来越熟悉蓝牙app了。
  13. matlab 广义最小二乘,广义最小二乘辨识的matlab实现
  14. 支付宝 app接口对接流程上
  15. linux常用技巧(一):后台下载
  16. 安徽师范大学计算机学院导师,安徽师范大学 数字计算机学院 耿焕同老师简介 联系方式 手机电话 邮箱...
  17. Hikey970——Lebuntu环境配置
  18. 算法学习之路|幼儿园买玩具
  19. TZC 高中信息技术(Python)必修题单————题解
  20. 拆解康柏321电池之电池串并联容量计算

热门文章

  1. qcom camera eeprom actuator pdaf bring up
  2. 前端必备技能之----节流
  3. B站科普区优质科普(技术区)UP主挖掘分析
  4. 智能网联模拟智慧交通综合实践开源平台
  5. 添加网络打印机方法及失败问题解决
  6. 初识UE4 VR开发三
  7. 4. java gc
  8. #红包节奏#领2019天猫618超级红包方法
  9. 支付宝还信用卡开始收费 互联网服务进入收费时代?
  10. 老男孩 redis mysql_老男孩教育2020年Mysql,NoSQL-Redis 数据库(上)