SHELL脚本加密

Posted 不断去追寻世界的本质和人生的意义

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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£^͟)»§

以上是关于SHELL脚本加密的主要内容,如果未能解决你的问题,请参考以下文章

使用 SHC 加密 Shell 脚本

手机shell脚本加密后不能运行

shell 脚本 片段

shell加密 与 二进制

用于确保在任何给定时间仅运行一个 shell 脚本的 shell 片段 [重复]

Shell 脚本加密