[golang]命令行base64编解码工具
媒介近来经常用kubectl查看处理secret配置问题,因为secret的值都颠末了base64编码,以是必要解码。如果不嫌切换界面麻烦的话,可以切欣赏器用在线编解码工具。或者用linux一般自带的base64命令来编解码。但这个base64只继承文件输入和标准输入,有时候临时做个编解码要通过标准输入传参比较麻烦,好比如下命令,多少有点麻烦
# 编码
echo -en 'qwer' | base64
# 解码
echo -en 'cXdlcg==' | base64 -d
# 编码多个字符串
for i in qwer asdf;do echo -en "${i}" |base64;done示例代码
package main
import (
"encoding/base64"
"flag"
"fmt"
"os"
)
var (
isdecode bool
isseq bool
)
var usage string = `sb64, a simple base64 command line tool
Usage: sb64 [-d|-n] `
func Process(source string, isdec bool) string {
var rst string
if !isdec {
rst = base64.URLEncoding.EncodeToString([]byte(source))
} else {
decrst, err := base64.URLEncoding.DecodeString(source)
if err != nil {
rst = "DecodeError"
} else {
rst = string(decrst)
}
}
return rst
}
func main() {
flag.BoolVar(&isdecode, "d", false, "decode mode")
flag.BoolVar(&isseq, "n", false, "print sequence number")
flag.Usage = func() {
fmt.Println(usage)
flag.PrintDefaults()
}
flag.Parse()
args := flag.Args()
if len(args) == 0 {
fmt.Println("Error: number of arguments is 0")
os.Exit(1)
}
for i, arg := range args {
seq := i + 1
if isseq {
fmt.Printf("%3d: %s\n", seq, Process(arg, isdecode))
} else {
fmt.Printf("%s\n", Process(arg, isdecode))
}
}
}执行编译,将编译后的二进制文件放到PATH情况变量的可执行目录下
使用
编码
$ sb64 hello world
aGVsbG8=
d29ybGQ=解码
$ sb64 -d aGVsbG8= d29ybGQ=
hello
world
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]