Go by Example: Base64 Encoding

Go cung cấp hỗ trợ tích hợp sẵn cho base64 encoding (mã hóa)/decoding (giải mã).

package main

Cú pháp này imports encoding/base64 package (gói) với tên b64 thay vì mặc định base64. Nó sẽ tiết kiệm cho chúng ta không gian.

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

Đây là chuỗi chúng ta sẽ mã hóa/giải mã.

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

Go hỗ trợ của base64 chuẩn và URL-compatible Đây là cách mã hóa sử dụng bộ mã hóa chuẩn. Bộ mã hóa yêu cầu một []byte nên chúng ta chuyển đổi chuỗi của chúng ta thành loại đó.

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

Giải mã có thể trả về lỗi, bạn có thể kiểm tra nếu bạn không biết đầu vào đã được định dạng tốt.

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

Đây là cách mã hóa/giải mã sử dụng định dạng base64 tương thích với URL.

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

Chuỗi được mã hóa thành các giá trị khác nhau với các mã hóa base64 chuẩn và URL (đuôi + vs -) nhưng chúng đều được giải mã thành chuỗi ban đầu như mong muốn

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

Ví dụ tiếp theo: Reading Files.