39 lines
796 B
Go
39 lines
796 B
Go
package utils
|
|
|
|
import (
|
|
"gitee.ltd/lxh/logger/log"
|
|
"golang.org/x/crypto/bcrypt"
|
|
)
|
|
|
|
type password struct{}
|
|
|
|
func Password() password {
|
|
return password{}
|
|
}
|
|
|
|
// GenerateHashPassword
|
|
// @description: 生成hash密码
|
|
// @receiver password
|
|
// @param pass
|
|
// @return string
|
|
func (password) GenerateHashPassword(pass string) string {
|
|
bytePass := []byte(pass)
|
|
hPass, _ := bcrypt.GenerateFromPassword(bytePass, bcrypt.DefaultCost)
|
|
return string(hPass)
|
|
}
|
|
|
|
// ComparePassword
|
|
// @description: 密码比对
|
|
// @receiver password
|
|
// @param dbPass
|
|
// @param pass
|
|
// @return bool
|
|
func (password) ComparePassword(dbPass, pass string) bool {
|
|
if err := bcrypt.CompareHashAndPassword([]byte(dbPass), []byte(pass)); err != nil {
|
|
log.Errorf("密码错误: %v", err.Error())
|
|
return false
|
|
}
|
|
|
|
return true
|
|
}
|