【Golang】Base64エンコードとデコードについて

Golang

Goはbase64のエンコードとデコードをサポートしています。

この記事では、golangにおいてbase64エンコードとデコードのやり方を解説します。

エンコードとは何ですか?

エンコードとは符号化のことで、符号化とは、ある形式の情報を可逆的に別の形式に変換することです。

また、データをエンコードしたのと同じアルゴリズムを使って、データをデコード(復号化)することができます。

ちなみに暗号化と混同してはいけません。

暗号化はエンコードの一種で、キーを使用しないとデータが解読できないように行われるため、非常に安全です。

base64エンコーディング

base64エンコーディングでは、

A-Z, a-z, 0-9, +, /, =

を含む合計64文字のシンボルテーブルを使用し、これらのシンボルを含む文字列にデータをエンコードします。

base64エンコードに必要なインポート

Goのエンコーディングパッケージには、base64パッケージがあります。

ですから、まずそれをインポートする必要があります。

import "encoding/base64"

Golangでデータをbase64にエンコードする

文字列をbase64に変換するためには、まず文字列をバイトスライスに変換する必要があります。

以下は、単純な文字列をbase64に変換した例です。

package main
 
import (
    "encoding/base64"
    "fmt"
)
 
func main() {
 
    s := "a string"
 
    se := base64.StdEncoding.EncodeToString([]byte(s))
    fmt.Println(se)                                        // YSBzdHJpbmc=
}

base64パッケージでデータをデコード

デコードは非常に簡単です。

プロセスは同じで、パッケージに含まれる標準的なデコーダを使って文字列をデコードします。

package main
 
import (
    "encoding/base64"
    "fmt"
)
 
func main() {
 
    s := "a string"
 
    se := base64.StdEncoding.EncodeToString([]byte(s))
    fmt.Println(se)                                        // YSBzdHJpbmc=
     
    sd, e := base64.StdEncoding.DecodeString(se)
    if e != nil {
        fmt.Println(e)
    }
    fmt.Println(string(sd))                                // a string                        
}
タイトルとURLをコピーしました