媒介
近来经常用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] [string]`
- 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企服之家,中国第一个企服评测及商务社交产业平台。 |