码迷,mamicode.com
首页 > 系统相关 > 详细

Linux-编写SHELL 加密解密方法

时间:2020-06-24 22:01:38      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:命令   com   inux   脚本调用   服务   roo   mysq   height   panic   

                                                 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"

技术图片

 

 

 

 

Linux-编写SHELL 加密解密方法

标签:命令   com   inux   脚本调用   服务   roo   mysq   height   panic   

原文地址:https://www.cnblogs.com/hushaojie/p/13189613.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!