一、加密原因
当我们正式线上开发环境是基于Linux开发时,通常必不可少的就是shell脚本的编写。
shell脚本的好处众多,可对系统进行自动化维护,简单,快捷而且可移植性强。

存在问题:
但是shell脚本时可读写的,很有时候,当线上业务量过多的时候,许多的执行命令还有一些信息我们可能会在脚本中来进行记录,防止丢失。但是这样以来可能会泄露一些敏感信息,比如用户名,密码,路径,IP,数据存放位置等隐私信息。

同样,在shell脚本运行时也会泄露敏感信息。

比如当需要做一个自动登录脚本时,每次手动输入密码太慢,而且手动输入可能会有手误现象;直接把密码写到脚本中,是很快捷,但是不安全,容易泄露。

二、解决方案:
把密码写在脚本中,作为参数传递给下一个脚本让其用来登录,而保存密码的脚本,使用某种手段加密,让其不可读但是可执行。

三、加密方法及实战演示
shell脚本的加密常用方法有以下三种:
gzexe,shc,upx

1、gzexe方法【特点是不用安装,加解密简单粗暴】
先准备两个脚本,一个是test.sh,主要用来计时,它会调用另一个脚本a.sh,这个a.sh就是要加密的脚本了。
a.sh脚本内容:
在这里插入图片描述
然后执行【加密】

gzexe a.sh

在这里插入图片描述
执行完成显示如此
然后查看脚本内容 cat a.sh!
在这里插入图片描述

发现脚本已经加密,原始代码看不见了

然后【解密】

gzexe -d a.sh

再查看脚本a.sh,显示如下:
在这里插入图片描述
恢复原样,说明已经解密

总结:gzexe其实就是个压缩文件,能起到隐藏文件内容的效果,执行速度几乎和脚本一样(在脚本不大的情况下),但是如果加密文件丢失,就会有风险,轻松就被破解了、还是谨慎为好。

2、shc【需要安装】
shc方法特点:加密以后,原文件不会变,会生成一个原文件.x的加密后的文件。
安装方法:

yum install -y shc

使用方法:

shc -r -f script-name 

注意:要有-r选项,-f后要跟加密的脚本名
运行后,会生成两个文件,script-name.x 和 script-name.x.c
script-name.x 是加密后的可执行的二进制文件
执行 ./script-name 即可运行。
script-name.x.c是生成script-name.x的原文件

加密命令:

shc -T -f a.sh

加密后,发现查看不了
发现出现一堆数字

总结:shc安全性好,但是解密太麻烦,加密后执行速度太慢

3、upx
upx是一个加壳工具,主要用来给可执行文件加密用的
安装upx

yum install -y upx

upx加密命令
最快压缩

upx -l a.sh

最强压缩

upx -9 a.sh

总结:
upx不能压缩太小文件,适用性不强

三者对比总结:
保护远程密码的话,直接使用gzexe即可,避免无意间泄露,执行速度快,如果能保证软件安全(牛逼的杀毒软件)和硬件安全(电脑别被偷了)的话,安全性还是可以接受的。如果脚本本身执行时间就很长,那么shc执行慢的特点或许也是可以忽略不计的。

(501条消息) Shell脚本加密方法大全及案例演示_听说唐僧不吃肉的博客-CSDN博客_shell加密

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐