Linux shell加密解密方法(gzexe、shc)

前言

  我们写的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脚本
点赞