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 運行結果