Golang实现base64加密解密

Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。

Go语言提供了对base64编码解码的支持;

需要引入encoding/base64包,标准base64编码解码实现如下:

package main

import (
    "encoding/base64"
    "fmt"
)

func main() {

    data := "hello world"

    enc_str := base64.StdEncoding.EncodeToString([]byte(data))
    fmt.Println(enc_str)

    dec_str, _ := base64.StdEncoding.DecodeString(enc_str)
    fmt.Println(string(dec_str))
}

标准的base64不适合直接放在URL里传输,因为URL编码器会把标准BASE64中的“+”和"/"字符进行编码,变成如“%XX”的形式;所以,衍生出一种用于URL的改进Base64编码,它在末尾填充“=”号,并将标准base64中的“+”和“/"分别改成了”-“和"_"。

URL base64的实现

package main

import (
    "encoding/base64"
    "fmt"
)

func main() {

    data := "hello world"

    enc_str := base64.URLEncoding.EncodeToString([]byte(data))
    fmt.Println(enc_str)

    dec_str, _ := base64.URLEncoding.DecodeString(enc_str)
    fmt.Println(string(dec_str))
}

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/golang-base64.html

分类: 计算机技术
推荐阅读:
Golang获取CPU物理核心数 在Go语言中,可使用runtime包中的NumCPU()函数获取CPU的物理核心数;
requests使用代理进行网络请求 requests支持HTTP、HTTPS、SOCKS等代理请求;如果要使用HTTP代理或HTTPS代理,你可以在任意请求方法中传入proxies参数来配置单个请求:
Linux查看实时活动的网络服务 在Linux系统下,你可以使用一条命令即可查看系统当前实时活动的网络服务:
Python计算两点之间的欧式距离 本文将使用Python来实现计算出二维和多维空间中两个点之间的欧式距离;
Implementation of the USB 2.0 controller not found!解决方案 你可能在使用VirtualBox启动虚拟机系统时碰到“不能为虚拟电脑打开一个新的任务”的错误提示,并提示 Implementation of the USB 2.0 controller not found!
Python 使用tld库获取复杂URL的顶级域名 我们会碰到各种各样的URL链接,比如:www.a.com/ b.com.cn/ a.b.c.com.cn a.com/b.com Python有内置的库可以识别一些简单的URL,但是像a.b.c.com.cn这样却无能为力。我们需要一个强大的第三方库来实现提取顶级域名。