golang bas64url的小坑

golang

golang的base64url 有一个小坑。

base64.URLEncoding.EncodeToString 和 base64.URLEncoding.DecodeString 末尾会带 = 符号,和其他语言的定义不一样

换成 base64.RawURLEncoding.EncodeToString 和 base64.RawURLEncoding.DecodeString 即可

go
package main
import "encoding/base64"
func main() {

	var strToBase64UrlTest = "161&q=aes+发生的&cvid=对付对方&gs"
	base64urlStr := base64.URLEncoding.EncodeToString([]byte(strToBase64UrlTest))
	println(base64urlStr)

	getStr, err := base64.URLEncoding.DecodeString(base64urlStr)
	if err != nil {
		panic(err)
	}
	println(string(getStr))

}

应该修改为

go
package main
import "encoding/base64"
func main() {

	var strToBase64UrlTest = "161&q=aes+发生的&cvid=对付对方&gs"
	base64urlStr := base64.RawURLEncoding.EncodeToString([]byte(strToBase64UrlTest))
	println(base64urlStr)

	getStr, err := base64.RawURLEncoding.DecodeString(base64urlStr)
	if err != nil {
		panic(err)
	}
	println(string(getStr))

}

评论