base64

package main

import (
    "encoding/base64"
    "fmt"
    "strings"
)

//Base64UrlSafeEncode 需要替换掉一些字符
func Base64UrlSafeEncode(source []byte) string {
    // Base64 Url Safe is the same as Base64 but does not contain '/' and '+' (replaced by '_' and '-') and trailing '=' are removed.
    bytearr := base64.StdEncoding.EncodeToString(source)
    safeurl := strings.Replace(string(bytearr), "/", "_", -1)
    safeurl = strings.Replace(safeurl, "+", "-", -1)
    safeurl = strings.Replace(safeurl, "=", "", -1)
    return safeurl
}

func main() {

    //标准base64编码
    wait_encode_data := "reformerreformer"
    wait_decode_data := "cmVmb3JtZXJyZWZvcm1lcg"

    //使用标准库自带的方式加密
    sEnc := base64.StdEncoding.EncodeToString([]byte(wait_encode_data))
    fmt.Println(sEnc)

    sDec, _ := base64.StdEncoding.DecodeString("cmVmb3JtZXJyZWZvcm1lcg==")
    fmt.Println(string(sDec))

    //兼容base64编码
    uEnc := base64.URLEncoding.EncodeToString([]byte(wait_encode_data))
    fmt.Println(uEnc)

    uDec, _ := base64.URLEncoding.DecodeString(wait_decode_data)
    fmt.Println(string(uDec))

}