package utils
|
|
|
|
import (
|
|
"crypto/md5"
|
|
"encoding/hex"
|
|
"github.com/kataras/golog"
|
|
"golang.org/x/crypto/bcrypt"
|
|
)
|
|
|
|
// Md5 returns the MD5 checksum string of the data.
|
|
func Md5(b []byte) string {
|
|
checksum := md5.Sum(b)
|
|
return hex.EncodeToString(checksum[:])
|
|
}
|
|
|
|
//加密
|
|
func Encrypt(password string) string {
|
|
if password == "" {
|
|
return ""
|
|
}
|
|
if hash, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost); err != nil {
|
|
return ""
|
|
} else {
|
|
password = string(hash)
|
|
return password
|
|
}
|
|
}
|
|
|
|
func CompareHashAndPassword(e string, p string) (bool, error) {
|
|
err := bcrypt.CompareHashAndPassword([]byte(e), []byte(p))
|
|
if err != nil {
|
|
golog.Println(err.Error())
|
|
return false, err
|
|
}
|
|
return true, nil
|
|
}
|