使用opensll加解密压缩文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用opensll加解密压缩文件相关的知识,希望对你有一定的参考价值。

参考技术A 加解密tar文件 ,通过命令行传递密码 How to use password argument in via command line to openssl for decryption

将当前目录下所有文件进行压缩,然后传递给openssl进行加密( -e encrypt, -d decrypt),使用 aes256 加密算法,输出到 mainsonar.tar.gz 文件,加密密码 -pass pass:password

加密后的tar包直接使用 tar -xzf mainsonar.tar.gz 解压时报错——

使用openssl先进行解密—— openssl enc -d -aes256 -in mainsonar.tar.gz -pass pass:password |tar xz ,如果传递的密码不正确,报错——

Linux下文件加密解密简单版(支持压缩加密解密)

首先说下实现方法:使用Linux的openssl命令进行二进制文件的加密解密,使用管道命令进行文件的加密解密操作

一、普通文件加密/解密

【加密】

cat a.txt | openssl des3 -e -k password > a1

其中a.txt可以为任何二进制文件、password为密码、a1为加密后的文件

原理:使用cat命令读取文件内容使用管道命令将文件内容输出到openssl命令,加密完成使用>操作符将加密后的结果输出到文件a1

 

【解密】

cat a1 | openssl -des3 -d -k password > a2

其中a1为加密后的文件、password为密码、a2为解密后的文件

原理与加密相同

 

openssl参数:

  des3 加密方式(可根据需要更换)

  -e 表示需要加密

  -d 表示需要解密

  -k 表示密钥(即密码)

 

二、压缩文件加密/解密

亮点:使用管道符实现数据内存交互,无需打包后再将打包后的文件加密

【压缩并加密】

tar zcvf - file1 file2 | openssl des3 -e -k password > a1

其中file1file2指添加进压缩包的文件,可以多个,可以为文件夹;password为密码,a1为加密后的文件

原理:使用tar命令打包文件( - 参数指输出到管道)将打包后的数据输出到openssl命令加密完成使用>操作符将加密后的结果输出到文件a1

 

【解密并解压】

cat a1 | openssl des3 -d -k password | tar zxvf -

其中a1为加密后的文件,password为密码

原理:使用 cat命令读取加密后的文件内容并且输出到openss命令,解密完成得到压缩包数据再通过管道符将数据传递到tar命令进行解压

tar命令的“-”参数指从管道读取数据进行解压而非文件

 

不得不感慨Linux管道命令之强大,可以将各种命令通过管道组合成复杂的功能,强大而高效

 

以上是关于使用opensll加解密压缩文件的主要内容,如果未能解决你的问题,请参考以下文章

iOS 资源文件的解压缩与加解密

怎么对已经加密压缩文件进行解密

Linux下文件加密解密简单版(支持压缩加密解密)

关于文件压缩解压缩与文件加密解密的项目

关于文件压缩解压缩与文件加密解密的项目

MacOS对文件夹加密的方法