openssl 实现 aes 文件加密解密

依赖

  1. Linux 环境(基础)
  2. 安装 openssl(加密用)
  3. 安装 python 环境(转换密钥用)

参考脚本如下:

#!/bin/shPY_FILE=__zone_aes_tool__.pyKEY=
IV=
IN_FILE=
OUT_FILE=# 获取密钥k,向量v,输入文件i,输出文件o
while getopts ":k:v:i:o:" opt
docase $opt ink)KEY=$OPTARGecho "参数 k - key 的值: $OPTARG";;v)IV=$OPTARGecho "参数 v - iv  的值: $OPTARG";;i)IN_FILE=$OPTARGecho "参数 i - in  的值: $OPTARG";;o)OUT_FILE=$OPTARGecho "参数 o - out 的值: $OPTARG";;?)echo "未知参数"exit 1;;esac
doneecho ""echo "IN_FILE  = ${IN_FILE}"
echo "OUT_FILE = ${OUT_FILE}"
echo "KEY      = ${KEY}"
echo "IV       = ${IV}"# 建立 python 文件,把字符串转换为 hex 值
echo "
import sys
import osIN_MSG = sys.argv[1]
IN_MSG_LEN = len(IN_MSG)
# print '[ %s ] %s' % (IN_MSG_LEN, IN_MSG)OUT_HEX_LIST = [hex(ord(x)) for x in IN_MSG]# popen remove hex_list
CMD_LIST = os.popen('echo \"%s\" | sed \"s/0x//g\" | sed \"s/[, \']//g\" | sed \"s/\[//g\" | sed \"s/\]//g\"' % (OUT_HEX_LIST)).readlines()
# print 'CMD_LIST = %s' % (CMD_LIST)# get first line
CMD_LINE = CMD_LIST[0]
# print 'CMD_LINE = %s' % (CMD_LINE)# remove '\ n'
OUT_HEX = CMD_LINE[0:len(CMD_LINE)-1]# print 'out hex : %s' % OUT_HEXprint OUT_HEX
" > ${PY_FILE}# 字符串转为 hex
KEY_HEX=`python ${PY_FILE} ${KEY}`
IV_HEX=`python ${PY_FILE} ${IV}`echo "KEY_HEX  = ${KEY_HEX}"
echo "IV_HEX   = ${IV_HEX}"# 删除 python 文件
rm ${PY_FILE}## 加密
echo "\n\topenssl enc -aes-128-cbc -K ${KEY_HEX} -iv ${IV_HEX} -in ${IN_FILE} -out ${OUT_FILE}\n\n"
`openssl enc -aes-128-cbc -K ${KEY_HEX} -iv ${IV_HEX} -in ${IN_FILE} -out ${OUT_FILE}`

执行命令如下:

./zone_aes_tool.sh -k 0123456789abcdef -v 0123456789ABCDEF \-i mxnet_liveness_141_model_symbol.json \-o encrypt_mxnet_liveness_141_model_symbol

其中:

-k:输入 16 个 ASCII 字符作为密钥

-v:输入 16 个 ASCII 字符作为向量(AES,CBC,PKCS5Padding 需要)

-i:输入需要加密的文件名

-o:输出加密后的生成的文件名

openssl 实现 aes 文件加密解密相关推荐

  1. Android AES 文件加密解密

    几番折磨终有结果,现将Demo整理出来... [java] view plain copy   package com.king.zjc; import java.io.File; import ja ...

  2. openssl算法 —— 利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密

    openssl 加密字符串的方法: 一.利用openssl命令进行BASE64编码解码(base64 encode/decode): 1. BASE64编码命令 对字符串'abc'进行base64编码 ...

  3. linux下面C 利用openssl的AES库加密,解密

    OpenSSL提供了AES加解密算法的API const char *AES_options(void); AES算法状态,是全部支持或者是部分支持. 返回值:"aes(full)" ...

  4. 使用WPF开发文件加密解密软件

    应用场景 在很多情况下,我们希望对一些比较私密的文件进行加密,当自己需要查看的时候,再解密出来.因此,今天与大家分享一款自己以前用WPF开发的文件加密解密软件. 准备工作 开发环境:VisualStu ...

  5. MacOS下使用C语言基于openssl库进行RSA加密解密

    MacOS下使用C语言基于openssl库进行RSA加密解密 1 安装openssl并生成密钥 首先当然要安装openssl(这里记得看一下安装路径,应该是/usr/local/Cellar/open ...

  6. 基于PHP和JS的AES相互加密解密方法详解(CryptoJS)

    在最近的项目中,前端后台数据交互需要进行加密之后传输使用,以保证系统数据的安全.有关数据加密解密的问题,有很多种加密的方式,在这里我选择了AES的加密方式.特此写下此篇博文,总结讲述下PHP和JS进行 ...

  7. 【C 语言】文件操作 ( 文件加密解密 | 解密文件 )

    文章目录 一.文件加密解密操作 1.解密整 4096 字节的数据 2.解密小于 4096 字节的数据 二.完整代码示例 1.文件加密操作 main.c 2.DES 加密解密头文件 des.h 3.第三 ...

  8. 【C 语言】文件操作 ( 文件加密解密 | 加密文件 )

    文章目录 一.文件加密解密操作 1.加密整 4096 字节的数据 2.加密小于 4096 字节的数据 二.完整代码示例 1.文件加密操作 2.DES 加密解密头文件 3.第三方 DES 加密解密函数库 ...

  9. AES在线加密解密-附AES128,192,256,CBC,CFB,ECB,OFB,PCBC各种加密

    一.AES在线加密解密:AES 128/192/256位CBC/CFB/ECB/OFB/PCBC在线加密解密|在线工具|在线助手|在线生成|在线制作 http://www.it399.com/aes ...

  10. c语言文件加密解密单词统计,C语言文件加密解密及单词统计程序.doc

    C语言文件加密解密及单词统计程序.doc (10页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 15.9 积分  高级语言程序设计 课程设计学 院 计算 ...

最新文章

  1. 禁用software reporter tool.exe 解决CPU高占用率的问题
  2. python xmxl 无法启动_Python小白到老司机,快跟我上车!基础篇(三)
  3. 双11,如果数据中心断网断电会怎样?
  4. go语言csv包_玩转数据处理120题R语言版本
  5. Python中必学知识点:类方法、实例方法和静态方法
  6. 大数据治理工程师_大数据治理关键技术解析(转自EAWorld)
  7. 使用Gradle引导旧式Ant构建
  8. 文件的读写操作 c# 1614992256
  9. 小学 学生学籍信息汇总及自动检查代码(Python)
  10. jquery 开始与结束方法 loading窗
  11. 图灵奖得主Alan Kay如何读书
  12. aodv-uu 源码解读
  13. 基于51单片机的手机电话拨号盘模拟protues仿真
  14. Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
  15. 【系统分析师之路】2016年系统分析师上午综合知识历年真题
  16. 创建本地版PACS系统
  17. [技术分享]-Servlet/tomcat/spring mvc之间关系
  18. uni.navigateBack直接返回到首页
  19. 压缩感知的常见测量矩阵
  20. python编程:从入门到实践(持续更新)

热门文章

  1. JPA报 Error executing DDL
  2. python人机交互界面
  3. WPF开发之解决程序调用自定义dll库在部分win7电脑上无法运行的情况
  4. 阿尔兹海默症AD最新研究进展(2022年2月)
  5. GPS测量原理及应用 知识总结
  6. 【自动驾驶】RTK(高精度的GPS测量)
  7. MITO-ID 线粒体膜电位检测试剂盒的作用机制和应用
  8. Atitit 常用街机系统and 模拟器总结 snk neo geo cps mame sfc smc
  9. vue之解决跨域问题
  10. C/C++编程:仿函数