首页 > 代码库 > shell脚本加密笔记!
shell脚本加密笔记!
你写的shell在生产环境是否加密?反正我是没有,线上环境看就看呗,觉得没啥。其实想想,好像也有几个好处。
1、简单加密,防止别人看里面具体内容。
2、可以隐蔽脚本中的密码等信息。(比如你的备份脚本,涉及到密码等问题)
好像还有点用处,大概常用的两种方式。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一种方法(gzexe):
这种加密方式不是非常保险的方法,但是能够满足一般的加密用途。它是使用系统自带的gzexe程序,它不但加密,同时压缩文件。
使用方法: gzexe file.sh 它会把原来没有加密的文件备份为 xx.sh~ ,同时 xx.sh 即被变成加密文件;
[root@node6 ~]# ./1.sh
2016年 08月 31日 星期三 15:38:45 CST
[root@node6 ~]# gzexe 1.sh
1.sh: 120.0%
[root@node6 ~]# ll 1.sh*
-rwxr-xr-x 1 root root 831 8月 31 15:38 1.sh
-rwxr-xr-x 1 root root 5 8月 31 15:30 1.sh~
[root@node6 ~]# cat 1.sh~
date
[root@node6 ~]#
建议使用,一方面系统自带命令,达到目的即可,没人闲的破解你的脚本,就算要破解,先进入你系统再说。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二种方式 shc
shc是一个专业的加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件,这个办法也很好的解决了脚本中含有IP、密码等不希望公开的问题。
包下载链接:
http://www.datsi.fi.upm.es/~frosal/sources/
wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.6.tgz
[root@node6 local]# tar xf shc-3.8.6.tgz
[root@node6 local]# cd shc-3.8.6
[root@node6 shc-3.8.6]# mkdir -p /usr/local/man/man1
这步是必须的,不然安装过程中会报错,shc将安装命令到/usr/local/bin/目录下;将帮助文档存放在/usr/local/man/man1/目录下,如果系统中无此目录,安装时会报错,可创建此目录后再执行安装。
[root@node6 shc-3.8.6]# make install
*** Installing shc and shc.1 on /usr/local
*** Do you want to continue? yes
install -c -s shc /usr/local/bin/
install -c -m 644 shc.1 /usr/local/man/man1/
[root@node6 shc-3.8.6]#
yum install glibc glibc.i686 -y
用法:
-f 指定要加密的文件
[root@node6 ~]# shc -r -f 1.sh
1.sh.x.c: In function ‘chkenv‘:
1.sh.x.c:277: warning: cast from pointer to integer of different size
运行后会生成两个文件,xx.x 和 xx.x.c. 其中xx.x是加密后的可执行的二进制文件;用./xx.x即可运行,xx.x.c是生成xx.x的原文件(c语言).
[root@node6 ~]# ll 1.sh*
-rwxr-xr-x 1 root root 831 8月 31 15:38 1.sh
-rwxr-xr-x 1 root root 5 8月 31 15:30 1.sh~
-rwx--x--x 1 root root 12656 8月 31 16:04 1.sh.x
-rw-r--r-- 1 root root 14001 8月 31 16:04 1.sh.x.c
[root@node6 ~]#
不建议使用,需要单独安装管理,比较麻烦。如果安全性要求极高,倒是可以参数。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
本文出自 “renzhiyuan@chinacfsc.com” 博客,请务必保留此出处http://renzhiyuan.blog.51cto.com/10433137/1844814
shell脚本加密笔记!