52 lines
1.1 KiB
Go
52 lines
1.1 KiB
Go
|
|
package base64x
|
||
|
|
|
||
|
|
import "encoding/base64"
|
||
|
|
|
||
|
|
// 普通的
|
||
|
|
func Base64StdEncode(s string) string {
|
||
|
|
return base64.StdEncoding.EncodeToString([]byte(s))
|
||
|
|
}
|
||
|
|
|
||
|
|
func Base64StdDecode(sEnc string) (string, error) {
|
||
|
|
sDec, err := base64.StdEncoding.DecodeString(sEnc)
|
||
|
|
if err != nil {
|
||
|
|
return "", err
|
||
|
|
}
|
||
|
|
return string(sDec), nil
|
||
|
|
}
|
||
|
|
|
||
|
|
// URL和文件名安全的
|
||
|
|
func Base64UrlEncode(s string) string {
|
||
|
|
return base64.URLEncoding.EncodeToString([]byte(s))
|
||
|
|
}
|
||
|
|
|
||
|
|
func Base64UrlDecode(sEnc string) (string, error) {
|
||
|
|
sDec, err := base64.URLEncoding.DecodeString(sEnc)
|
||
|
|
if err != nil {
|
||
|
|
return "", err
|
||
|
|
}
|
||
|
|
return string(sDec), nil
|
||
|
|
}
|
||
|
|
|
||
|
|
// 无填充
|
||
|
|
func Base64RawEncode(s string) string {
|
||
|
|
return base64.RawStdEncoding.EncodeToString([]byte(s))
|
||
|
|
}
|
||
|
|
|
||
|
|
func Base64RawDecode(sEnc string) (string, error) {
|
||
|
|
sDec, err := base64.RawStdEncoding.DecodeString(sEnc)
|
||
|
|
if err != nil {
|
||
|
|
return "", err
|
||
|
|
}
|
||
|
|
return string(sDec), nil
|
||
|
|
}
|
||
|
|
|
||
|
|
func Base64RawUrlEncode(s string) string {
|
||
|
|
return base64.RawURLEncoding.EncodeToString([]byte(s))
|
||
|
|
}
|
||
|
|
|
||
|
|
func Base64RawUrlDecode(s string) (string, error) {
|
||
|
|
decoded, err := base64.RawURLEncoding.DecodeString(s)
|
||
|
|
return string(decoded), err
|
||
|
|
}
|