// Go内置支持base64编解码。
package main
import (
"encoding/base64"
"fmt"
)
func main() {
data := "abc123!?$*&()'-=@~" // 编解码这个字符串
// Go支持标准的和URL兼容的Base64
// 使用标准编码器进行编码,编码器需要字节数组,所以将字符串转换为字节数组
sEnc := base64.StdEncoding.EncodeToString([]byte(data))
fmt.Println(sEnc)
// 解码会返回错误,可用于检测输入格式是否正确
sDec, _ := base64.StdEncoding.DecodeString(sEnc)
fmt.Println(string(sDec))
fmt.Println()
// 使用与URL兼容的Base64编解码方式
uEnc := base64.URLEncoding.EncodeToString([]byte(data))
fmt.Println(uEnc)
uDec, _ := base64.URLEncoding.DecodeString(uEnc)
fmt.Println(string(uDec))
}
// 对同一个字符串使用标准编码器和URL兼容的编码器进行编码等到的值略有不同(末尾是+或者-)
// 但是都能根据需要解码为原始字符串