go语言工资水平是多少?这个其实彻底取决于本身,从5K、10K、20K不等,你掌握的技术越精致,越普遍,你的工资水平越高,因此先开启你的学习之旅吧!学习
9.1.1 Base64编码
Base64就是一种基于64个可打印字符来表示二进制数据的方法。Base64使用了26个小写字母、26个大写字母、10个数字以及两个符号(例如“+”和“/”),用于在电子邮件这样的基于文本的媒介中传输二进制数据。Base64一般用于编码邮件中的附件。code
Base64字符集以下所示。cdn
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/blog
Base64的编码过程如图所示。索引
图9.1 Base64ip
步骤说明以下。ci
l 将每一个字符转成ASCII编码(10进制)string
l 将10进制编码转成2进制编码it
l 将2进制编码按照6位一组进行平分
l 将6位一组的2进制数高位补零,而后转成10进制数
l 将10进制数做为索引,从Base64编码表中查找字符
l 每3个字符的文本将编码为4个字符长度(3*8=4*6)若文本为3个字符,则正好编码为4个字符长度; 若文本为2个字符,则编码为3个字符,因为不足4个字符,则在尾部用一个“=”补齐;若文本为1个字符,则编码为2个字符,因为不足4个字符,则在尾部用两个“=”补齐,如图所示。
图9.2 Base64编码补齐
接下来经过一个案例演示Base64编码解码,如例所示。
例1-1 Base64
1 package main
2 import (
3 "encoding/base64"
4 "fmt"
5 )
6 func main() {
7 str := "心怀不惧,方能翱翔于天际"
8 cipherText := Base64EncodeString(str)
9 fmt.Println("base64 编码后:",cipherText)
10 fmt.Println("base64 解码后:",Base64DecodeString(cipherText))
11 }
12 func Base64EncodeString(str string) string {
13 return base64.StdEncoding.EncodeToString([]byte(str))
14 }
15 func Base64DecodeString(str string) string {
16 result, _ := base64.StdEncoding.DecodeString(str)
17 return string(result)
18 }
运行结果如图所示。
图9.3 运行结果