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  }