zoukankan      html  css  js  c++  java
  • shell脚本加密

    需求:

      公司的服务器登录都是通过jumpserver堡垒机管理的,由于实在不喜欢web终端的操作,于是就写了个自动登录的shell脚本,由于脚本要公开给部分研发人员使用,但是脚本中包含了服务器的普通用户和root用户的密码,所以为了不使密码泄露要将脚本内容加密;

    示例脚本:

    #!/bin/bash
    for i in {1..10}
    do
        echo $i
    done

    一、gzexe加密

      gzexe命令比较简单,其本质就是一个压缩软件,在CentOS 7.7上是自带的,其他版本不清楚;

    1、加密

    [root@message test]# gzexe test.sh
    test.sh:	  2.0%
    [root@message test]# ls
    test.sh  test.sh~

      执行完成后,会在当前目录生成一个备份文件test.sh~,该文件的内容是原始明文文件的内容,是可以删除的;test.sh文件就是加密压缩后的文件,用cat查看时就是一堆乱码,但是该加密脚本是可以执行的;

    2、解密

    [root@message test]# gzexe -d test.sh
    [root@message test]# ls
    test.sh  test.sh~

      执行完解密操作后,test.sh这个原来的加密文件就变成明文了;而test.sh~这个文件就是原先加密文件的备份,是加密的;

    二、shc加密

      shc是一个专业的加密工具,它可以将shell脚本转换为一个可执行的二进制文件;  
      官网地址:http://www.datsi.fi.upm.es/~frosal/sources/ #目前官网已经断更了
      软件地址:http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9.tgz

    1、安装

    wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9.tgz
    tar xvf shc-3.8.9.tgz -C /usr/local/
    cd /usr/local/shc-3.8.9
    mkdir -p /usr/local/man/man1    # 该步骤不能省略,make install的时候会报错
    
    [root@message shc-3.8.9]# make install
    ***	Installing shc and shc.1 on /usr/local
    ***	¿Do you want to continue? y    #是否继续,输入y即可
    install -c -s shc /usr/local/bin/
    install -c -m 644 shc.1 /usr/local/man/man1/
    [root@message shc-3.8.9]# which shc  #能看到环境变量则安装成功
    /usr/local/bin/shc 

    2、加密

    [root@message test]# shc -r -f test.sh
    [root@message test]# ls
    test.sh  test.sh.x  test.sh.x.c
    [root@message test]# cat test.sh
    #!/bin/bash
    for i in {1..10}
    do
        echo $i
    done
    [root@message test]# bash test.sh.x
    test.sh.x: test.sh.x: 无法执行二进制文件
    [root@message test]# ./test.sh.x
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10  

      test.sh 原始文件
      test.sh.x 二进制可执行文件,用cat查看会是一堆乱码
      test.sh.x.c 生成的C源码,可以删除
      -r 制作可执行的二进制文件
      -f 要编译的脚本的文件名

    三、总结

      gzexe和shc相比来看,gzexe不需要安装,操作也方便,但是安全性较差,懂行的人直接就解压了;shc相对来说还需要安装,目前官网也不再更新,但是安全性较高,破译难度较大;

  • 相关阅读:
    hotmail 收不到邮件的问题
    getaddrinfo 报错 Invalid value for ai_flags
    Avoiding Common Networking Mistakes
    关掉标准输出
    不需要 root 权限的 ping
    select 的问题
    Behavior Tree 用 Lua 实现一个最简行为树
    对 UDP 的一些思考
    Windows UDP sockets: recvfrom() fails with error 10054
    和等于某个数的所有组合
  • 原文地址:https://www.cnblogs.com/zhangzhide/p/15529385.html
Copyright © 2011-2022 走看看