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"

