github.com/angenalZZZ/gofunc@v0.0.0-20210507121333-48ff1be3917b/f/encoding_base64.go (about) 1 package f 2 3 import ( 4 "encoding/base64" 5 "strings" 6 ) 7 8 // EncodeBase64Trim Base64 Trim= encoded string. 9 // encodedString := EncodeBase64Trim(srcBytes, EncodeBase64URL) 10 func EncodeBase64Trim(src []byte, encode func(src []byte) string) string { 11 return strings.TrimRight(encode(src), "=") 12 } 13 14 // DecodeBase64Trim Base64 Trim= decoded bytes. 15 // srcBytes, err := DecodeBase64Trim(encodedString, DecodeBase64URL) 16 func DecodeBase64Trim(s string, decode func(s string) ([]byte, error)) ([]byte, error) { 17 if l := len(s) % 4; l > 0 { 18 s += strings.Repeat("=", 4-l) 19 } 20 return decode(s) 21 } 22 23 // EncodeBase64Std base64.StdEncoding.EncodeToString 24 func EncodeBase64Std(src []byte) string { 25 return base64.StdEncoding.EncodeToString(src) 26 } 27 28 // EncodeBase64URL base64.URLEncoding.EncodeToString 29 func EncodeBase64URL(src []byte) string { 30 return base64.URLEncoding.EncodeToString(src) 31 } 32 33 // EncodeBase64RawURL base64.RawURLEncoding.EncodeToString 34 func EncodeBase64RawURL(src []byte) string { 35 return base64.RawURLEncoding.EncodeToString(src) 36 } 37 38 // DecodeBase64Std base64.StdEncoding.DecodeString 39 func DecodeBase64Std(s string) ([]byte, error) { 40 return base64.StdEncoding.DecodeString(s) 41 } 42 43 // DecodeBase64URL base64.URLEncoding.DecodeString 44 func DecodeBase64URL(s string) ([]byte, error) { 45 return base64.URLEncoding.DecodeString(s) 46 } 47 48 // DecodeBase64RawURL base64.RawURLEncoding.DecodeString 49 func DecodeBase64RawURL(s string) ([]byte, error) { 50 return base64.RawURLEncoding.DecodeString(s) 51 }