In this source code example, you’ll find examples demonstrating how to perform Base64 encoding in Golang.
Go’s encoding/base64 package implements base64 encoding as specified by RFC 4648. It provides implementations for both Standard as well as URL and Filename safe Base64 encoding variant.
Golang provides built-in support for Base64 encoding and decoding.
Golang Base64 Encoding Example
package main
import (
"encoding/base64"
"fmt"
)
func main() {
data := "hello world12345!?$*&()'-@~"
// Base64 Standard Encoding
sEnc := base64.StdEncoding.EncodeToString([]byte(data))
fmt.Println(sEnc)
// Base64 Url Encoding
uEnc := base64.URLEncoding.EncodeToString([]byte(data))
fmt.Println(uEnc)
// ====================================
// Base64 Encoding without Padding
swEnc := base64.RawStdEncoding.EncodeToString([]byte(data))
fmt.Println(swEnc)
// Base64 Url Encoding without Padding
uwEnc := base64.RawURLEncoding.EncodeToString([]byte(data))
fmt.Println(uwEnc)
}
Output:
aGVsbG8gd29ybGQxMjM0NSE/JComKCknLUB+
aGVsbG8gd29ybGQxMjM0NSE_JComKCknLUB-
aGVsbG8gd29ybGQxMjM0NSE/JComKCknLUB+
aGVsbG8gd29ybGQxMjM0NSE_JComKCknLUB-
Let's understand the above source code step by step.
Golang Base64 Encoding:
data := "hello world12345!?$*&()'-@~"
// Base64 Standard Encoding
sEnc := base64.StdEncoding.EncodeToString([]byte(data))
fmt.Println(sEnc)
Golang Base64 URL and Filename safe Encoding:
// Base64 Url Encoding
uEnc := base64.URLEncoding.EncodeToString([]byte(data))
fmt.Println(uEnc)
Golang Base64 Encoding without Padding
// Base64 Encoding without Padding
swEnc := base64.RawStdEncoding.EncodeToString([]byte(data))
fmt.Println(swEnc)
Base64 Url Encoding without Padding:
// Base64 Url Encoding without Padding
uwEnc := base64.RawURLEncoding.EncodeToString([]byte(data))
fmt.Println(uwEnc)