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

分类: 计算机技术
推荐阅读:
Go语言使用闭包实现斐波那契数列 要使用Go语言实现一个闭包来计算斐波那契数列,你可以定义一个函数,该函数返回一个闭包,闭包可以迭代地生成斐波那契数列的下一个数字。
SEO基础:TKD是什么意思? TKD其实就是HTML语言中title、keywords、description的缩写;
Rust serde详细教程 当你需要在 Rust 代码中序列化和反序列化数据时,serde 库是一个强大而灵活的工具;它支持多种数据格式,并且可以轻松地将 Rust 数据结构转换为这些格式的文本或二进制表示。
Python format()函数 Python 内置的 format() 函数是一种字符串格式化输出的方法,可以将变量插入到字符串中,并控制输出的格式。
TypeError: 'str' object does not support item assignment 解决方法 引起 TypeError: 'str' object does not support item assignment 错误是因为尝试以下标的方式修改字符串导致的;在Python中,字符串是不可变类型,不能通过下标的方式直接更改某一字符;
Windows安装Golang最新版本 首先,你需要下载Golang的最新安装包,你可以到官网去,Golang的官方网站为:golang.org,但这个网站国内用户无法访问,好在Google提供了第二个Golang下载页面: