Base64是網絡上最常見的用于傳輸8Bit字節代碼的編碼方式之一,可用于在HTTP環境下傳遞較長的標識信息。Go 的 encoding/base64 提供了對base64的編解碼操作。
```go
package main
import (
"encoding/base64"
"fmt"
"log"
)
func main() {
str := "www.5lmh.com"
fmt.Printf("string : %v\n", str)
input := []byte(str)
fmt.Printf("[]byte : %v\n", input)
// 演示base64編碼
encodeString := base64.StdEncoding.EncodeToString(input)
fmt.Printf("encode base64 : %v\n", encodeString)
// 對上面的編碼結果進行base64解碼
decodeBytes, err := base64.StdEncoding.DecodeString(encodeString)
if err != nil {
log.Fatalln(err)
}
fmt.Printf("decode base64 : %v\n", string(decodeBytes))
fmt.Println()
// 如果要用在url中,需要使用URLEncoding
urlencode := base64.URLEncoding.EncodeToString([]byte(input))
fmt.Printf("urlencode : %v\n", urlencode)
//URLEncoding
urldecode, err := base64.URLEncoding.DecodeString(urlencode)
if err != nil {
log.Fatalln(err)
}
fmt.Printf("urldecode : %v\n", string(urldecode))
}
```
輸出結果:
```
string : www.5lmh.com
[]byte : [119 119 119 46 53 108 109 104 46 99 111 109]
encode base64 : d3d3LjVsbWguY29t
decode base64 : www.5lmh.com
urlencode : d3d3LjVsbWguY29t
urldecode : www.5lmh.com
```