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

分类: 计算机技术
推荐阅读:
Python webbrowser模块的详细用法 webbrowser是python下一个内置的模块,该模块提供了一个高级接口,使你可以调用计算机中的浏览器以打开基于WEB的文档,比如常见的html网页;
PySide6 动态创建按钮数组 动态创建按钮数组在许多场合非常有用,特别是当你需要根据用户输入、数据量或其它条件来生成界面元素时;本片将演示如何使用PySide6来动态的创建按钮数组,并正确响应对应按钮的点击信号;
Python sorted()函数 在 Python 中,sorted() 函数用于对序列进行排序。它可以接受多种类型的输入序列,包括列表、元组、集合和字典等。
Python爬取国外可用的代理IP 这是作者曾经在某个程序中写的一个python模块,其作用是爬取国外的一个免费代理IP网站,获得免费的代理IP。
Rust column宏的用法和示例 在 Rust 中,column宏可以获取调用它所在位置的列号,为开发人员提供有关源代码中位置的调试信息;
Go语言中预定义常量iota的用法 iota可以被认为是一个可被编译器修改的常量,在每个const关键字出现时被重置为0,在下一个const出现之前,每出现一次iota,其所代表的数字会自增1.