golang bas64url的小坑
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))
}