54 lines
1.2 KiB
Go
54 lines
1.2 KiB
Go
package utils
|
|
|
|
import (
|
|
"crypto/md5"
|
|
"encoding/base64"
|
|
"encoding/hex"
|
|
)
|
|
|
|
var Encrypt = NewEncrypt()
|
|
|
|
const (
|
|
BASE_64_TABLE = "1234567890poiuytreqwasdfghjklmnbvcxzQWERTYUIOPLKJHGFDSAZXCVBNM-_"
|
|
)
|
|
|
|
type encrypt struct{}
|
|
|
|
func NewEncrypt() *encrypt {
|
|
return &encrypt{}
|
|
}
|
|
|
|
//base64 加密
|
|
func (encrypt *encrypt) Base64Encode(str string) string {
|
|
var coder = base64.NewEncoding(BASE_64_TABLE)
|
|
var src []byte = []byte(str)
|
|
return string([]byte(coder.EncodeToString(src)))
|
|
}
|
|
|
|
//base64 加密
|
|
func (encrypt *encrypt) Base64EncodeBytes(bytes []byte) []byte {
|
|
var coder = base64.NewEncoding(BASE_64_TABLE)
|
|
return []byte(coder.EncodeToString(bytes))
|
|
}
|
|
|
|
//base64 解密
|
|
func (encrypt *encrypt) Base64Decode(str string) (string, error) {
|
|
var src []byte = []byte(str)
|
|
var coder = base64.NewEncoding(BASE_64_TABLE)
|
|
by, err := coder.DecodeString(string(src))
|
|
return string(by), err
|
|
}
|
|
|
|
//base64 解密
|
|
func (encrypt *encrypt) Base64DecodeBytes(str string) ([]byte, error) {
|
|
var coder = base64.NewEncoding(BASE_64_TABLE)
|
|
return coder.DecodeString(str)
|
|
}
|
|
|
|
//md5加密
|
|
func (encrypt *encrypt) Md5Encode(str string) string {
|
|
hash := md5.New()
|
|
hash.Write([]byte(str))
|
|
return hex.EncodeToString(hash.Sum(nil))
|
|
}
|