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  }