google-app-engine - 在 golang ( appengine ) 上无填充的 Base64 编码/解码

标签 google-app-engine go encoding base64

有一种方法可以将字符串编码为 Base64 或从中解码为 Base64,而无需在末尾进行填充?我的意思是“==”结尾。

我正在使用 base64.URLEncoding.EncodeToString 进行编码,它工作得很好,但我没有看到决定不在末尾使用填充的方法(就像在 java 上一样)。

最佳答案

Go1.5 会有一个 WithPadding Encoding 选项。

这还将添加 2 个预定义编码,RawStdEncoding, and RawURLEncoding , 没有填充。

尽管由于您使用的是应用程序引擎,并且暂时无法访问 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
}

关于google-app-engine - 在 golang ( appengine ) 上无填充的 Base64 编码/解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31971614/

相关文章:

java - 在 ReSTLet/GAE 中发送回压缩的 JSON

python - 在 Google Identity Toolkit 中实现重置密码和电子邮件更改

python - 从 Google App Engine python 发送 iOS 推送通知

go - 如何使用 golang 在非根路径上提供 index.html

google-app-engine - 使用部分字符串作为过滤器在 Go GAE 数据存储中搜索条目

python - Sublime text 和 Linux-KDE。系统区域设置设置为无法处理非 ASCII 字符的值

javascript - 让 JavaScript 与 App Engine API 交互的推荐方法

http - Go Web 服务器的进程管理

java - URL编码异常

encoding - FFmpeg WebM AV1 支持