github.com/keysonzzz/kmg@v0.0.0-20151121023212-05317bfd7d39/encoding/kmgBase64/kmgBase64.go (about) 1 package kmgBase64 2 3 import "encoding/base64" 4 5 func MustStdBase64DecodeStringToByte(s string) (out []byte) { 6 out, err := base64.StdEncoding.DecodeString(s) 7 if err != nil { 8 panic(err) 9 } 10 return 11 } 12 13 func StdBase64DecodeByteToByte(s []byte) (out []byte, err error) { 14 out = make([]byte, base64.StdEncoding.DecodedLen(len(s))) 15 nw, err := base64.StdEncoding.Decode(out, s) 16 if err != nil { 17 return nil, err 18 } 19 return out[:nw], nil 20 } 21 22 // 应用范围比较广的base64转义方案 23 // 1.输出的字符串里面可能包含下列特殊字符 -_= 这三种 24 // 2.输出的字符串区分大小写, 25 // 3.不要放在文件名的地方,mac os 和windows的文件名不区分大小写. 请使用kmgBase32 26 func Base64EncodeStringToString(input string) string { 27 return base64.URLEncoding.EncodeToString([]byte(input)) 28 } 29 30 func Base64EncodeByteToString(input []byte) string { 31 return base64.URLEncoding.EncodeToString(input) 32 } 33 34 func MustBase64DecodeStringToString(input string) string { 35 output, err := base64.URLEncoding.DecodeString(input) 36 if err != nil { 37 panic(err) 38 } 39 return string(output) 40 } 41 42 func Base64DecodeStringToByte(input string) (b []byte, err error) { 43 return base64.URLEncoding.DecodeString(input) 44 }