github.com/AntonOrnatskyi/goproxy@v0.0.0-20190205095733-4526a9fa18b4/utils/crypt/misc.go (about) 1 package utils 2 3 import ( 4 "crypto/md5" 5 "encoding/base64" 6 "encoding/hex" 7 ) 8 9 type CryptTool struct{} 10 11 var CryptTools = NewCryptTool() 12 13 func NewCryptTool() *CryptTool { 14 return &CryptTool{} 15 } 16 17 func (encrypt *CryptTool) Base64Encode(str string) string { 18 return string([]byte(base64.StdEncoding.EncodeToString([]byte(str)))) 19 } 20 21 func (encrypt *CryptTool) Base64EncodeBytes(bytes []byte) []byte { 22 return []byte(base64.StdEncoding.EncodeToString(bytes)) 23 } 24 25 func (encrypt *CryptTool) Base64Decode(str string) (string, error) { 26 by, err := base64.StdEncoding.DecodeString(str) 27 return string(by), err 28 } 29 30 func (encrypt *CryptTool) Base64DecodeBytes(str string) ([]byte, error) { 31 return base64.StdEncoding.DecodeString(str) 32 } 33 34 func (encrypt *CryptTool) MD5(str string) string { 35 hash := md5.New() 36 hash.Write([]byte(str)) 37 return hex.EncodeToString(hash.Sum(nil)) 38 }