Go 示例: Base64 编码

Go 提供了对 base64 编码/解码 的内置支持。

package main

此语法使用 b64 名称导入 encoding/base64 包,而不是默认的 base64。这将为我们节省一些空间。

import (
    b64 "encoding/base64"
    "fmt"
)
func main() {

以下是我们将编码/解码的 string

    data := "abc123!?$*&()'-=@~"

Go 支持标准和 URL 兼容的 base64。以下是使用标准编码器进行编码的方法。编码器需要一个 []byte,因此我们将我们的 string 转换为该类型。

    sEnc := b64.StdEncoding.EncodeToString([]byte(data))
    fmt.Println(sEnc)

解码可能会返回错误,如果您不知道输入是否格式正确,则可以检查错误。

    sDec, _ := b64.StdEncoding.DecodeString(sEnc)
    fmt.Println(string(sDec))
    fmt.Println()

这使用 URL 兼容的 base64 格式进行编码/解码。

    uEnc := b64.URLEncoding.EncodeToString([]byte(data))
    fmt.Println(uEnc)
    uDec, _ := b64.URLEncoding.DecodeString(uEnc)
    fmt.Println(string(uDec))
}

使用标准和 URL base64 编码器,字符串编码为略微不同的值(尾随 +-),但它们都按预期解码为原始字符串。

$ go run base64-encoding.go
YWJjMTIzIT8kKiYoKSctPUB+
abc123!?$*&()'-=@~
YWJjMTIzIT8kKiYoKSctPUB-
abc123!?$*&()'-=@~

下一个示例:读取文件.