zoukankan      html  css  js  c++  java
  • Linux-编写SHELL 加密解密方法

                                                     Linux-编写SHELL 加密解密方法

                      我们在编写SHELL脚本时,有时候需要填写密码到脚本里,比如mysql备份脚本,这时我们就需要一个脚本加密解密的方法了,我使用GO语音执行Linux命令加密解密。脚本调用go脚本。

    一. 使用bash64 加密 解密

        1.加密

         [root@izbp14ot0ykf8wyktz0kwgz ~]# echo "我是密码" | base64

        

       2.解密

        [root@izbp14ot0ykf8wyktz0kwgz ~]# echo "5oiR5piv5a+G56CBCg==" | base64 -d

        

     二.使用AES128-ECB方式加密

       1.加密

         [root@izbp14ot0ykf8wyktz0kwgz ~]# echo "我是密码" | openssl aes-128-cbc -k 123456 -base64       #123456是密钥

        

       2.解密

          [root@izbp14ot0ykf8wyktz0kwgz ~]# echo "U2FsdGVkX19tE1MwP3umI3tAkljZT+3nMXtsAL+/Qb4=" | openssl aes-128-cbc -d -k 123456 -base64   #123456是密钥

          

    三.编写go脚本

      1.需要提前把密文和秘钥配置到代码里面

    package main
    
    import (
    	"fmt"
    	"os"
    	"os/exec"
    )
    
    var s = "Solution"
    var shell = `echo U2FsdGVkX1+RnCGFeTk3AMnaXvJ1Y8ItEEMwGB8H1Qw= | openssl aes-128-cbc -d  -k qwe -base64`
    
    func main() {
    
    	if len(os.Args) > 1 {
    		s = os.Args[1]
    	}
    	cmd := exec.Command("/bin/bash", "-c", shell)
    	// 执行命令,并返回结果
    	output, err := cmd.Output()
    	if err != nil {
    		panic(err)
    	}
    	// 因为结果是字节数组,需要转换成string
    	fmt.Printf(string(output))
    }
    

     2.打包为linux可执行文件

     1.设置环境
         set GOARCH=amd64
         set GOOS=linux
     2.打包
         go build ShellPS.go
    

     3.上传到linux服务器,并赋予可执行权限

    chmod 755 ShellPS
    

     4.脚本调用

    #!/bin/bash
    Spasswd=`/root/ShellPS`
    echo "密码: $Spasswd"

     

  • 相关阅读:
    小坦克 沪牌代拍 包中 不中赔100
    JMeter 测试 ActiveMq
    上海程序员 落户攻略
    性能测试(一) 基础概念
    2017 沪牌中标后流程
    2017 上海车牌(沪牌)标书购买攻略
    2017年 外牌转沪牌 攻略 (沪南路车管所)
    Android Monkey 压力测试 介绍
    Android ADB 用法
    Python自动化测试 (九)urllib2 发送HTTP Request
  • 原文地址:https://www.cnblogs.com/hushaojie/p/13189613.html
Copyright © 2011-2022 走看看