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"

     

  • 相关阅读:
    CentOS7.2安装mysql
    中国古代研究
    2018计算机考研各科试卷分值分布
    《期刊杂志总结》
    《认识雅思》
    《认识托福》
    Java框架
    英语学习方法
    单词2
    Phaser游戏框架与HTML Dom元素之间的通信交互
  • 原文地址:https://www.cnblogs.com/hushaojie/p/13189613.html
Copyright © 2011-2022 走看看