bcrypt算法对于同一个密码,每次生成的hash不一样
业务流程
- 对用户注册时传入的密码进行加密
//此方法生成hash值
HashAndSalt([]byte("password")) //password为string类型
hashedPwdpasswordtrue
ComparePasswords(hashedPwd string,[]byte("password"))
封装加密和验证方法
package utils
import (
"golang.org/x/crypto/bcrypt"
)
// 加密密码
func HashAndSalt(pwd []byte) string {
hash, err := bcrypt.GenerateFromPassword(pwd, bcrypt.MinCost)
if err != nil {
}
return string(hash)
}
// 验证密码
func ComparePasswords(hashedPwd string, plainPwd []byte) bool {
byteHash := []byte(hashedPwd)
err := bcrypt.CompareHashAndPassword(byteHash, plainPwd)
if err != nil {
return false
}
return true
}