当前位置:首页 > 后端开发 > 正文内容

[golang]命令行base64编解码东西

邻居的猫1个月前 (12-09)后端开发688

前语

最近经常用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

扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=175

标签: golang
分享给朋友:

“[golang]命令行base64编解码东西” 的相关文章

第60篇 abp结构介绍

第60篇 abp结构介绍

abp是一个开源且文档友爱的运用程序结构,供给了一个依据范畴驱动规划(DDD)的体系结构模型,能够支撑.net core和.net framework两种技能门户。 1.abp结构特色 1.1 依靠注入 这个部分运用 Castle windsor (依靠注入容器)来完成依靠注入,这个也是咱们常常运用...

斐波那契数列python,斐波那契数列的定义与性质

斐波那契数列python,斐波那契数列的定义与性质

斐波那契数列是一个著名的数列,其中每个数字是前两个数字的和。数列的前几个数字是:0, 1, 1, 2, 3, 5, 8, 13, 21, ...1. 递归方法:使用递归函数来计算斐波那契数列的每个数字。这种方法虽然直观,但效率较低,因为它会重复计算许多相同的值。2. 动态规划方法:使用动态规划来避免...

python快速注释,提升代码可读性与维护性

在Python中,快速注释代码的常见方法有以下几种:1. 单行注释:使用 `` 符号在代码行前添加注释。2. 多行注释:可以使用三个连续的单引号 `'''` 或三个连续的双引号 `` 来创建多行注释。3. 使用文本编辑器或IDE的快捷键:大多数文本编辑器和IDE都提供了快捷键来快速注释或取消注释代码...

go与go to的区别,深入解析“go”与“go to”的区别

go与go to的区别,深入解析“go”与“go to”的区别

Go 和 go to 在英语中虽然都含有“去”的意思,但它们的用法和含义有所不同。1. Go 是一个动词,表示“去”的动作。它可以单独使用,也可以与介词、副词等搭配使用,表示不同的方向、目的地等。例如: I'm going to the store.(我要去商店。) He goes to...

有关go的短语,go的短语归纳大全初中

有关go的短语,go的短语归纳大全初中

1. Go ahead 请继续,往前走2. Go for it 尽管去做,试试看3. Go with the flow 顺其自然,随波逐流4. Go the extra mile 额外努力,做得更多5. Go out on a limb 冒险尝试,承担风险6. Go back to squ...

verilog语言入门教程,verilog语言

如果你想学习Verilog语言,这里有几篇入门教程可以参考:1. 菜鸟教程 Verilog 教程 这篇教程介绍了Verilog HDL的基本语法、设计层次和仿真方法,适合初学者和进阶者。通过实例和代码,你可以学习如何用Verilog设计数字电路,如4位宽10进制计数器。 2. CSDN...