You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
package tools
|
|
|
|
|
|
|
|
import (
|
|
|
|
"crypto/md5"
|
|
|
|
"crypto/sha256"
|
|
|
|
"encoding/base64"
|
|
|
|
"encoding/hex"
|
|
|
|
"strings"
|
|
|
|
)
|
|
|
|
|
|
|
|
//md5加密
|
|
|
|
func Md5(src string) string {
|
|
|
|
m := md5.New()
|
|
|
|
m.Write([]byte(src))
|
|
|
|
res := hex.EncodeToString(m.Sum(nil))
|
|
|
|
return res
|
|
|
|
}
|
|
|
|
|
|
|
|
//Sha256加密
|
|
|
|
func Sha256(src string) string {
|
|
|
|
m := sha256.New()
|
|
|
|
m.Write([]byte(src))
|
|
|
|
res := hex.EncodeToString(m.Sum(nil))
|
|
|
|
return res
|
|
|
|
}
|
|
|
|
func Base64Decode(str string) string {
|
|
|
|
reader := strings.NewReader(str)
|
|
|
|
decoder := base64.NewDecoder(base64.RawStdEncoding, reader)
|
|
|
|
// 以流式解码
|
|
|
|
buf := make([]byte, 1024)
|
|
|
|
// 保存解码后的数据
|
|
|
|
dst := ""
|
|
|
|
for {
|
|
|
|
n, err := decoder.Read(buf)
|
|
|
|
dst += string(buf[:n])
|
|
|
|
if n == 0 || err != nil {
|
|
|
|
break
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return dst
|
|
|
|
}
|