2 回答
TA贡献1827条经验 获得超8个赞
Go1.5 将有一个WithPadding选项Encoding。
这还将添加 2 个预定义的编码RawStdEncoding, 和RawURLEncoding,它们将没有填充。
虽然由于您使用的是 app-engine,并且暂时无法访问 Go1.5,但您可以创建一些辅助函数来根据需要添加和删除填充。
这是一个编码和解码字符串的示例。如果您需要,它可以很容易地适应以更有效地使用[]byte.
func base64EncodeStripped(s string) string {
encoded := base64.StdEncoding.EncodeToString([]byte(s))
return strings.TrimRight(encoded, "=")
}
func base64DecodeStripped(s string) (string, error) {
if i := len(s) % 4; i != 0 {
s += strings.Repeat("=", 4-i)
}
decoded, err := base64.StdEncoding.DecodeString(s)
return string(decoded), err
}
TA贡献1877条经验 获得超6个赞
简单地,
使用base64.RawStdEncoding.EncodeToString代替base64.StdEncoding.EncodeToString
要不然
使用base64.RawURLEncoding.EncodeToString代替base64.URLEncoding.EncodeToString.
// RawURLEncoding is the unpadded alternate base64 encoding defined in RFC 4648.
// It is typically used in URLs and file names.
// This is the same as URLEncoding but omits padding characters.
- 2 回答
- 0 关注
- 188 浏览
添加回答
举报