程式語言範例:Base64 編碼

程式語言提供對 base64 編碼/解碼 的內建支援。

package main

這個語法使用 b64 名稱而非預設的 base64,導入 encoding/base64 套件。這樣可以為我們節省一些空間。

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

以下是要編碼/解碼的 文字字串

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

程式語言同時支援標準和 URL 相容的 base64。以下是使用標準編碼器編碼的方法。編碼器需要 []byte,因此我們會將 文字字串 轉換為該類型。

    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!?$*&()'-=@~

下一段範例:讀取檔案