Go语言encoding/base64包提供标准、安全、高效的Base64编解码能力,非加密而是编码;常用StdEncoding处理一般场景,URLEncoding适配URL/文件名安全需求,需检查解码错误,敏感数据须用AES等真正加密。
Go语言内置的encoding/base64包提供了标准、安全、高效的Base64编解码能力,无需额外依赖。它不叫“加密”,而是编码(Encoding),用于将二进制数据转为可打印ASCII字符串,常用于HTTP传输、URL参数、JSON字段等场景。
使用base64.StdEncoding.EncodeToString()最常用,适合一般场景(如HTTP头、日志、配置):
[]byte,字符串需先用[]byte(s)转换+、/和=填充)用base64.StdEncoding.DecodeString(),注意它返回([]byte, error),务必检查错误:
+//,或缺少填充符=
[]byte("hello")
标准Base64的+和/在URL或文件系统中不安全,此时应改用base64.URLEncoding:
-代替+,_代替/,省略填充(或按需保留)base64.URLEncoding.EncodeToString([]byte("hi/there")) → "aGkvdGhlcmU"
base64.URLEncoding.DecodeString("aGkvdGhlcmU") 自动兼容有无填充若需兼容旧系统或特殊协议,可用base64.NewEncoding(string)构造自定义编码器:
StdEncoding或URLEncoding即可基本上就这些。Base64不是加密,不提供安全性;敏感数据仍需AES等真正加密手段。Go的实现简洁可靠,关键就是选对编码器、记得检查解码错误
、URL场景优先用URLEncoding。