前言
我们写的shell脚本里面通常会包含帐号密码等信息或者你不想让别人看到的信息,那么把写好的shell脚本进行简单的加密显得有些必要了。常用的shell加密方法有两种,一种是通过gzexe加密,另一种是通过shc加密。
gzexe是用来压缩执行文件的程序。当您去执行被压缩过的执行文件时,该文件会自动解压然后继续执行,和使用一般的执行文件相同。shc是一个专业的加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件,这个办法很好的解决了脚本中含有IP、密码等不希望公开的问题。下面我将为大家演示这两个工具的使用
一、系统自带g的zexe
gzexe无需安装任何软件,是linux自带的功能,只需要执行命令即可,我们可以利用wget将文件放在root目录下,也可以通过sftp放在root目录,也可以直接利用cd命令选择任意目录
加密方法
假如说我们当前目录下有个脚本名字叫test.sh
那我们就执行下面的方法进行加密
gzexe test.sh
此时在目录下就会产生一个test.sh~文件,改文件是源文件,test.sh是加密后的文件
(注意:执行加密的文件跟执行源文件没有区别)
解密方法
假如说我们这个脚本名字叫test.sh
那我们就执行如下命令进行解密
gzexe -d test.sh
同上,在目录下就会产生一个test.sh~文件,改文件是源文件,test.sh是加密后的文件
二、shc加密软件
shc是linux的一款加密脚本的插件,东西比较安全,shc官网:http://www.datsi.fi.upm.es/%7Efrosal/
安装方法
执行如下脚本安装shc
wget http://www.datsi.fi.upm.es/%7Efrosal/sources/shc-3.8.9.tgz tar vxf shc-3.8.9.tgz cd shc-3.8.9 mkdir -p /usr/local/man/man1 make install
如果不执行mkdir -p /usr/local/man/man1将会报如下错误
*** Installing shc and shc.1 on /usr/local *** ?Do you want to continue? y install -c -s shc /usr/local/bin/ install -c -m 644 shc.1 /usr/local/man/man1/ install: target `/usr/local/man/man1/' is not a directory: No such file or directory make: *** [install] Error 1
shc常用参数:
-e date (指定过期日期)
-m message (指定过期提示的信息)
-f script_name(指定要编译的shell的路径及文件名)
-r Relax security. (可以相同操作系统的不同系统中执行)
-v Verbose compilation(编译的详细情况)
加密方法
假如说我们这个脚本名字叫test.sh
那我们就执行如下命令进行加密
shc -v -f test.sh
-v 是现实加密过程
-f 后面跟需要加密的文件
abc.sh.x为加密后的二进制文件,赋予执行权限后,可直接执行。更改名字mv vpsps.sh.x vpspscom.sh
abc.sh.x.c 是c源文件。基本没用,可以删除
解密方法
利用unshc来解密
网址:https://github.com/yanncam/UnSHc/
unshc使用方法
将unshc wget或者上传到任意目录
然后可执行如下命令查看帮助
./unshc.sh -h
执行下面的命令进行解密(此过程可能耗时有点长,需耐心等待)
./unshc.sh script.sh.x -o script_decrypted.sh script.sh.x文件为经过加密的二进制文件 script_decrypted.sh文件为解密后shell脚本