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
}
