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  }