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"

     

  • 相关阅读:
    Java的运算符
    Java的输入和输出
    ieda使用maven出现unable to find valid certification path to requested target问题解决
    linux设置mysql查询忽略表明大小写的配置
    idea插件GsonFormat的使用
    Charles抓包(iOS的http/https请求)
    (转)Java线上应用故障排查之一:高CPU占用
    基本功知识点
    MYSQL 什么时候用单列索引?什么使用用联合索引?(收集)
    Quartz定时器中的misfire指定解析
  • 原文地址:https://www.cnblogs.com/hushaojie/p/13189613.html
Copyright © 2011-2022 走看看