前言: 在实际生产环境之中,很多数据需要以加密形式进行存放,下面我们以tar打包压缩/解包解压命令来说明如何使用打包压缩加密和解密解包解压。加密使用 des3
-
进行打包压缩加密
假设在/data
目录下有一个目录叫backup
需要进行打包压缩并加密。
- 使用工具生产一串密钥,这里使用openssl基于base64生成32位密钥
[root@server data]# openssl rand -base64 32
LGgJ5R0zljjtvdEcaRgHegivnBw7UeBY0+Q7UYt0Epo=
[root@server data]#
- 进行打包压缩加密
直接打包加密输出
[root@server data]# tar -czvf - backup | openssl des3 -salt -k LGgJ5R0zljjtvdEcaRgHegivnBw7UeBY0+Q7UYt0Epo= -out backup.tar.gz
....
打包加密后使用dd
命令导出(文件后缀无所谓,des3为了记加密类型)
[root@server data]# tar -zcvf - backup | openssl des3 -salt -k LGgJ5R0zljjtvdEcaRgHegivnBw7UeBY0+Q7UYt0Epo= | dd of=backup.des3
...
-
进行解密解包解压缩
- 如果没有进行使用dd命令进行重新导出的,可以直接使用以下命令进行解
[root@server data]# openssl des3 -d -k LGgJ5R0zljjtvdEcaRgHegivnBw7UeBY0+Q7UYt0Epo= -salt -in backup.tar.gz | tar xzf -
...
2. 如果使用dd命令,请使用以下命令进行
[root@server data]# dd if=backup.des3 | openssl des3 -d -k LGgJ5R0zljjtvdEcaRgHegivnBw7UeBY0+Q7UYt0Epo= | tar -zvxf -
...
注意:由于在命令行直接把密钥写进进行加密,所有一般系统在用户的命令历史里面会记录了加密的密钥,这样进行加密后,需要清掉涉及的历史记录或在进行清空,或者在加密时候不要使用
-k
参数以及后面的密钥,等询问密钥时候再进行输入,这样就不会泄漏密钥。解密时候也一样