通过 bcrypt 对数据加密,这个和Laravel里的 bcrypt() 方法原理是一样的
package main
import (
"fmt"
"golang.org/x/crypto/bcrypt"
)
func HashPassword(password string) (string, error) {
bytes, err := bcrypt.GenerateFromPassword([]byte(password), 14)
return string(bytes), err
}
func CheckPasswordHash(hash, password string) bool {
err := bcrypt.CompareHashAndPassword([]byte(hash), []byte(password))
return err == nil //直接比较,返回bool
}
func main() {
password := "123456"
hash, _ := HashPassword(password)// 先生成password的hash码,这个码存到数据库,也就是password字段
res := CheckPasswordHash(hash,password) // 将hash后的password和hash前的password作比较
fmt.Println("比较结果为:", res)
}
