golang bas64url的小坑

golang的base64url 有一个小坑。

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

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
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))

}

应该修改为

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
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))

}
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计