zip、tar 命令加密和解密压缩文件
zip、tar 命令加密和解密压缩文件,这样别人即使拿到了压缩文件,也没法破解里面的数据库密码和数据。
测试树形目录
$ cd mimvp-blog/ $ tree . |____111.txt |____222.txt |____333.txt |____folder01 | |____111.txt | |____222.txt | |____333.txt |____folder02 | |____111.txt | |____222.txt | |____333.txt |____folder03 | |____111.txt | |____222.txt | |____333.txt
zip 命令的解压缩(不加密)
语法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b < 工 作目录>][-ll][-n < 字 尾字符串>][-t < 日 期时间>][-< 压 缩效率>][压 缩文件][文件...][-i < 范本样式>][-x < 范本样式>]
说明:zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具 有".zip"扩展名 的压缩文件。
zip -9r mimvp-blog.zip mimvp-blog // 压缩文件夹, -9 表示最高级别压缩率, -r 表示递归压缩目录
zip -9r mimvp-blog.zip mimvp-blog -x ".svn/*" // 压缩文件夹,排除不包含 .svn 目录下的所有文件或子目录
unzip mimvp-blog.zip -d mimvp-blog_zip // 解压文件,-d 指定解压存储的目录路径
示例演示:
1)压缩目录
$ zip -9r mimvp-blog.zip mimvp-blog adding: mimvp-blog/ (stored 0%) adding: mimvp-blog/111.txt (stored 0%) adding: mimvp-blog/222.txt (stored 0%) adding: mimvp-blog/333.txt (stored 0%) adding: mimvp-blog/folder01/ (stored 0%) adding: mimvp-blog/folder01/111.txt (stored 0%) adding: mimvp-blog/folder01/222.txt (stored 0%) adding: mimvp-blog/folder01/333.txt (stored 0%) adding: mimvp-blog/folder02/ (stored 0%) adding: mimvp-blog/folder02/111.txt (stored 0%) adding: mimvp-blog/folder02/222.txt (stored 0%) adding: mimvp-blog/folder02/333.txt (stored 0%) adding: mimvp-blog/folder03/ (stored 0%) adding: mimvp-blog/folder03/111.txt (stored 0%) adding: mimvp-blog/folder03/222.txt (stored 0%) adding: mimvp-blog/folder03/333.txt (stored 0%)
2)解压文件
$ unzip mimvp-blog.zip -d mimvp-blog_zip Archive: mimvp-blog.zip creating: mimvp-blog_zip/mimvp-blog/ extracting: mimvp-blog_zip/mimvp-blog/111.txt extracting: mimvp-blog_zip/mimvp-blog/222.txt extracting: mimvp-blog_zip/mimvp-blog/333.txt creating: mimvp-blog_zip/mimvp-blog/folder01/ extracting: mimvp-blog_zip/mimvp-blog/folder01/111.txt extracting: mimvp-blog_zip/mimvp-blog/folder01/222.txt extracting: mimvp-blog_zip/mimvp-blog/folder01/333.txt creating: mimvp-blog_zip/mimvp-blog/folder02/ extracting: mimvp-blog_zip/mimvp-blog/folder02/111.txt extracting: mimvp-blog_zip/mimvp-blog/folder02/222.txt extracting: mimvp-blog_zip/mimvp-blog/folder02/333.txt creating: mimvp-blog_zip/mimvp-blog/folder03/ extracting: mimvp-blog_zip/mimvp-blog/folder03/111.txt extracting: mimvp-blog_zip/mimvp-blog/folder03/222.txt extracting: mimvp-blog_zip/mimvp-blog/folder03/333.txt
3)zip 命令参数:
-A 调整可执行的自动解压缩文件。
-b<工作目录> 指定暂时存放文件的目录。
-c 替每个被压缩的文件加上注释。
-d 从压缩文件内删除指定的文件。
-D 压缩文件内不建立目录名称。
-f 此参数的效果和指定"-u"参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中。
-F 尝试修复已损坏的压缩文件。
-g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。
-h 在线帮助。
-i<范本样式> 只压缩符合条件的文件。
-j 只保存文件名称及其内容,而不存放任何目录名称。
-J 删除压缩文件前面不必要的数据。
-k 使用MS-DOS兼容格 式的文件名称。
-l 压缩文件时,把LF字符 置换成LF+CR字 符。
-ll 压缩文件时,把LF+CR字 符置换成LF字符。
-L 显示版权信息。
-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
-n<字尾字符串> 不压缩具有特定字尾字符串的文件。
-o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。
-P 添加压缩密码,解压必须匹配密码解压,防止被人破解压缩文件
-q 不显示指令执行过程。
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
-S 包含系统和隐藏文件。
-t<日期时间> 把压缩文件的日期设成指定的日期。
-T 检查备份文件内的每个文件是否正确无误。
-u 更换较新的文件到压缩文件内。
-v 显示指令执行过程或显示版本信息。
-V 保存VMS操作系统的文 件属性。
-w 在文件名称里假如版本编号,本参数仅在VMS操 作系统下有效。
-x 压缩时排除符合条件的文件。
-X 不保存额外的文件属性。
-y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之 类的系统下有效。
-z 替压缩文件加上注释。
-$ 保存第一个被压缩文件所在磁盘的卷册名称。
-<压缩效率> 压缩效率是一个介于1-9的数值。
zip 命令的加密解压缩(加密)
1)zip 加密压缩
zip -9r -P'123456' mimvp-blog_pwd.zip mimvp-blog // -P'123456' 添加了压缩密码,解压时需输入密码
2)unzip 加密解压
unzip -P'123456' mimvp-blog_pwd.zip -d mimvp-blog_zip_pwd // -P'123456' 输入密码进行解压
若命令行里不输入参数 -P,则解压时会提示输入密码
$ unzip mimvp-blog_pwd.zip -d mimvp-blog_zip_pwd3 // unzip 解压不带-P,会提示输入解压密码(实际暴露了zip是加密后的文件)
Archive: mimvp-blog_pwd.zip
creating: mimvp-blog_zip_pwd3/mimvp-blog/
[mimvp-blog_pwd.zip] mimvp-blog/111.txt password: // 输入密码错误(1234)
password incorrect--reenter: // 输入密码错误(12345)
password incorrect--reenter: // 输入密码正确(123456)
extracting: mimvp-blog_zip_pwd3/mimvp-blog/111.txt
extracting: mimvp-blog_zip_pwd3/mimvp-blog/222.txt
extracting: mimvp-blog_zip_pwd3/mimvp-blog/333.txt
creating: mimvp-blog_zip_pwd3/mimvp-blog/folder01/
extracting: mimvp-blog_zip_pwd3/mimvp-blog/folder01/111.txt
extracting: mimvp-blog_zip_pwd3/mimvp-blog/folder01/222.txt
extracting: mimvp-blog_zip_pwd3/mimvp-blog/folder01/333.txt
creating: mimvp-blog_zip_pwd3/mimvp-blog/folder02/
extracting: mimvp-blog_zip_pwd3/mimvp-blog/folder02/111.txt
extracting: mimvp-blog_zip_pwd3/mimvp-blog/folder02/222.txt
extracting: mimvp-blog_zip_pwd3/mimvp-blog/folder02/333.txt
creating: mimvp-blog_zip_pwd3/mimvp-blog/folder03/
extracting: mimvp-blog_zip_pwd3/mimvp-blog/folder03/111.txt
extracting: mimvp-blog_zip_pwd3/mimvp-blog/folder03/222.txt
extracting: mimvp-blog_zip_pwd3/mimvp-blog/folder03/333.txt
tar 命令的解压缩(不加密)
1)tar 压缩目录
tar zcvf mimvp-blog.tar.gz mimvp-blog
示例演示:
$ tar zcvf mimvp-blog.tar.gz mimvp-blog a mimvp-blog a mimvp-blog/111.txt a mimvp-blog/222.txt a mimvp-blog/333.txt a mimvp-blog/folder01 a mimvp-blog/folder02 a mimvp-blog/folder03 a mimvp-blog/folder03/111.txt a mimvp-blog/folder03/222.txt a mimvp-blog/folder03/333.txt a mimvp-blog/folder02/111.txt a mimvp-blog/folder02/222.txt a mimvp-blog/folder02/333.txt a mimvp-blog/folder01/111.txt a mimvp-blog/folder01/222.txt a mimvp-blog/folder01/333.txt
2)tar 解压文件
tar解压到指定目录,共分两步:
a)创建目标目录:mkdir mimvp-blog_tar
b)解压到指定目录:tar zxvf mimvp-blog.tar.gz -C mimvp-blog_tar // -C 需先创建指定目录
$ mkdir mimvp-blog_tar $ tar zxvf mimvp-blog.tar.gz -C mimvp-blog_tar x mimvp-blog/ x mimvp-blog/111.txt x mimvp-blog/222.txt x mimvp-blog/333.txt x mimvp-blog/folder01/ x mimvp-blog/folder02/ x mimvp-blog/folder03/ x mimvp-blog/folder03/111.txt x mimvp-blog/folder03/222.txt x mimvp-blog/folder03/333.txt x mimvp-blog/folder02/111.txt x mimvp-blog/folder02/222.txt x mimvp-blog/folder02/333.txt x mimvp-blog/folder01/111.txt x mimvp-blog/folder01/222.txt x mimvp-blog/folder01/333.txt
3)tar 命令常见参数
-c :create 建立压缩档案的参数;
-C : 创建解压后指定的存储目录;
-x : 解压缩压缩档案的参数;
-z : 是否需要用gzip压缩;
-v: 压缩的过程中显示档案;
-f: 置顶文档名,在f后面立即接文件名,不能再加参数
tar 命令的加密解压缩(加密)
tar 命令没有参数直接指定压缩密码,需要借助 openssl 来实现加密压缩和解压
1)tar 加密压缩
tar zcvf - mimvp-blog | openssl des3 -salt -k '123456' -out mimvp-blog_pwd.tar.gz
2)tar 加密解压
openssl des3 -d -k '123456' -salt -in mimvp-blog_pwd.tar.gz | tar zxvf -
或者解压到指定目录
mkdir mimvp-blog_tar_pwd
openssl des3 -d -k '123456' -salt -in mimvp-blog_pwd.tar.gz | tar zxvf - -C mimvp-blog_tar_pwd
需要注意:
1)tar 是通过 openssl 实现的加密
2)tar 可以加密压缩目录(mimvp-blog),或者文件
3)tar zxvf - 中的横杠(-)表示全部文件和目录
若命令行里不输入参数 -P,则解压时会提示错误
$ tar zxvf mimvp-blog_pwd.tar.gz
tar: Unrecognized archive format
tar: Error exit delayed from previous errors.
这是因为通过 tar 压缩后,通过了 openssl 加密,已经不再是 tar 格式,所以提示不认识文件格式
tar 加密压缩比zip加密压缩的优势也体现出来了,zip 加密后解压时会提示已加密,但 tar 不会提示已加密,更能迷惑别人
zip 和 tar 压缩对比
$ ll
drwxr-xr-x 8 homer staff 272 9 14 17:45 mimvp-blog // 原目录
-rw-r--r-- 1 homer staff 405 9 14 18:31 mimvp-blog.tar.gz // tar 普通压缩
-rw-r--r-- 1 homer staff 2866 9 14 18:13 mimvp-blog.zip // zip 普通压缩
-rw-r--r-- 1 homer staff 10264 9 14 19:03 mimvp-blog_pwd.tar.gz // tar 加密压缩
-rw-r--r-- 1 homer staff 3202 9 14 18:22 mimvp-blog_pwd.zip // zip 加密压缩
drwxr-xr-x 3 homer staff 102 9 14 18:36 mimvp-blog_tar // tar 普通解压
drwxr-xr-x 3 homer staff 102 9 14 19:06 mimvp-blog_tar_pwd // tar 加密解压
drwxr-xr-x 3 homer staff 102 9 14 18:19 mimvp-blog_zip // zip 普通解压
drwxr-xr-x 3 homer staff 102 9 14 18:24 mimvp-blog_zip_pwd // zip 加密解压
从上面的压缩对比看, tar 压缩率比 zip 高,mimvp-blog.tar.gz(405字节),mimvp-blog.zip(2866字节)
但是若加密后,tar 加密的文件比 zip加密后的文件大,主要 openssl des3 加密长度较长,若原目录足够大,tar 压缩比仍然较高
总结
米扑为了备份 wordpress 数据库和文件,研究了 《cp、tar 命令排除文件和子目录》 和 《zip、tar 命令加密和解密压缩文件》
结合cp、tar 的排查拷贝、压缩、加密压缩,完全可以在本地循环备份WP,然后把加密的zip、tar上传至阿里云、腾讯云、七牛、百度网盘等
后续,米扑博客将会继续分享如何上传 zip、tar 文件到阿里云、腾讯云、七牛、百度网盘等
参考推荐:
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2019-02-02 05:57:15
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!
tar应该没有压缩的功能吧?只是把文件打包在一起,然后再压缩,所以我们一般看到的都是*.tar.gz这样的后缀。
tar 有压缩功能 tar -c 压缩,tar -x 解压,压缩、解压 一般成对出现