base64编解码
基本知识
-
base64编码不是加解密,一种编辑数据的格式,方便传输。
-
Base64: 64个字符的标准表
0~9
a - z
A -Z
+ /
一共64个字符,任何输入的数据,都可以转换为这64个字符,进行传输
- base64处理之后,size变大,原因是base64算法按照6bit进行切割
base64编码表
- 3个字节的情况
- 不足3的倍数时,会用=进行填充
为什么需要base64
- 两个系统可能有不同的字符,把特殊的字符编译文本,传输过去,(编码),对端可以进行解码显示
- 把一些特殊字符做一层处理,正常传输。比如url中的/ ? &等
go语言下base64编解码
普通编码使用:标准方式StdEncoding
涉及到url时:使用URLEncoding,字母表+
变-
,/
变_
func main() {
src:=[]byte("hello world hello go")
//标准编码
encodeInfo:=base64.StdEncoding.EncodeToString(src)
fmt.Printf("encodeIofo:%v\n",encodeInfo)
//标准解码
src,err:=base64.StdEncoding.DecodeString(encodeInfo)
if err!=nil{
fmt.Println("decode err",err)
return
}
fmt.Printf("%s\n",src)
//URL编码
encodeInfo=base64.URLEncoding.EncodeToString(src)
fmt.Printf("encodeIofo:%v\n",encodeInfo)
//URL解码
src,err=base64.URLEncoding.DecodeString(encodeInfo)
if err!=nil{
fmt.Println("decode err",err)
return
}
fmt.Printf("%s\n",src)
}