SHELL脚本加密

一、背景介绍

  DBA日常更新insert|update较多,耽误很多时间。开发出工具虽然对脚本内用户密码进行了加密加严操作,但是仔细查询内部逻辑还是可能泄露密码的,今天用gzexe方式对shell脚本加密。

二、开始测试

1.找一个测试脚本执行。(线上脚本内容不便公布,自行编写测试脚本。)

  

2.进行加密操作
[root@]#gzexe Automatic_update.sh 
Automatic_update.sh:	 63.0%
[root@]#ls
Automatic_update.sh  Automatic_update.sh~  bak  conf  SelectDBname.sh  sh_lib

  

 

 

3.加密后的脚本内容
[root@ ]#cat Automatic_update.sh
#!/bin/sh
skip=44

tab='	'
nl='
'
IFS=" $tab$nl"

umask=`umask`
umask 77

gztmpdir=
trap 'res=$?
  test -n "$gztmpdir" && rm -fr "$gztmpdir"
  (exit $res); exit $res
' 0 1 2 3 5 10 13 15

if type mktemp >/dev/null 2>&1; then
  gztmpdir=`mktemp -dt`
else
  gztmpdir=/tmp/gztmp$$; mkdir $gztmpdir
fi || { (exit 127); exit 127; }

gztmp=$gztmpdir/$0
case $0 in
-* | */*'
') mkdir -p "$gztmp" && rm -r "$gztmp";;
*/*) gztmp=$gztmpdir/`basename "$0"`;;
esac || { (exit 127); exit 127; }

case `echo X | tail -n +1 2>/dev/null` in
X) tail_n=-n;;
*) tail_n=;;
esac
if tail $tail_n +$skip <"$0" | gzip -cd > "$gztmp"; then
  umask $umask
  chmod 700 "$gztmp"
  (sleep 5; rm -fr "$gztmpdir") 2>/dev/null &
  "$gztmp" ${1+"$@"}; res=$?
else
  echo >&2 "Cannot decompress $0"
  (exit 127); res=127
fi; exit $res                                                                                                                                                          ~1±Automatic_update.shԖ[O~߽ScRem¯
ֻm҈RڄRZ5R!Q£^͟)»§󙊭Lܔj#YZϙ󌛯fN֫ɂ¬%
~򱿙­𦽷ؼµ#®ƚ®n¸ګ髜{n�ꬬSu򺈗¶q𐋨򡤰ᐻ¿׆IJ!ȖUVĉǐ$¬2¨«l؄´d]>b٢£6򉂿¼ݳh±¬G 񏪓¹9©+De"NCUwL0±mDz±r­2ª
                                          򰖄
읾鞝񔕤ˢ¦]
<\¼]&Z#¦-Q%E-d配P05Ϥ¸毼1:쮟<ݼ�¼®̻�°p·þ̮鱐³½5x¼¬k4G-3Ƨ²w򦡯?m={)5ƲWٮuaª⡜xp 
±vņr#¹\
       Ϻ$$½5Gtڱ@
#󧪤¶˗惸󿾙򎬰eَS䛢¤£e¨v³¤▯G%=PD񚱉¡򐨳Gz:Q¥誎󿛵þ(¼ғǂ>>ȵ%̐5LNQ¦E٨✒EޑlZ򊂒HJOV¤T ªO*r!)陑.QbȚ5畒­Z%!K1©TʓR| _R!e
߫알®񷦧N%\¹7a=¹y XБ v*;ן²ʨKeª·k¤5²ـK§*،¿2#󼖚텗%3%
                                            ª(֐§e5avº¯¦¬¡¿ٝs4¹5R2 
                                                                ݝº\򞻡
tі=g轺gL8ÿ¢ɾ󵩍岙X𐨠	Zºc󿖢¦7
                              ᰹¥A񃩼ٔ듊򙡈ҵ[m󿿶ޢ񪏲<𐍂¿Dz~®YFL\T¥>ʑɷ𹨜¾2

                                                              @,򛗜
                                                                 𖝔S(Ywﺙ𐑕𕽜I򠰑½/y̛º£
򤎙𿇹ȴ Ύ]>©¦/񦱝ɷfrþ
               Ǡڃ	¯ۂ׈HBVZHϛˡ󿰙¦īoC(
²";£(mҳƷ*ğ쑿
ǽþ򁑭l0񳷧½똸윴¡½9˵¯B򣀟¡󓄞 Dφ
              ߪ»񄷜ÿy³¾෠岨Chιٿ¡o¾

 

4.再次执行内容不变,并确认加参数一样可以执行。

  

5.进行解密
gzexe -d Automatic_update.sh
查看确认脚本内容无误

  

6.再次执行确认,发现完全没问题。
#另外一种shell加密方式shc,自行研究。

  

posted @ 2017-04-11 16:21  Bourne.D  阅读(899)  评论(0编辑  收藏  举报