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"

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM