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

分类: 计算机技术
推荐阅读:
使用PySide6创建窗口以及各类窗口的区别 在本文中,你将了解Qt的窗口,以及QMainWindow、QWidget、QDialog之间的区别和在PySide6中的使用方法;
Rust unreachable宏的用法和示例 unreachable是Rust中的一个宏,它用于标记代码中的一个不可能被执行的分支;这个宏告诉编译器在这个分支上的代码永远不会被执行到;这对于表明某些情况下的代码不可达是很有用的。
一条Linux命令生成一个指定长度的随机密码 在Linux系统下,你可以只需要一条命令就可以生成指定长度的随机密码:
C语言计算卡特兰数(catanlan number) 卡特兰数(Catalan number),是组合数学中一种常出现于各种计数问题中的数列;本文使用C语言来计算卡特兰数;
Python this模块的加密原理 this模块的代码(this模块位于Python安装目录/lib下)。定义了2个变量;字符串s和字典d(被定义两次);s很明显是一段密文,d则是密码字典,key和value对应的是密文和原文;chr((i+13)%26 +c) 则是加密算法,其原理是通过向字典d写入KEY为字符A~Z,VALUE为加密后的字符。然后通过字典遍历的方法,匹配出正确的字符。
使用Python爬取网页上的所有链接 要使用Python爬取网页上的所有链接,可以使用Python的requests库和BeautifulSoup库。