golang.org/x/crypto/bcrypt
是 Go 中用于密码加密的工具,安全高效,适合用户认证。
go get golang.org/x/crypto/bcrypt
GenerateHashPassword
作用:将明文密码生成加密哈希。
代码:
func GenerateHashPassword(password string) (string, error) {
hashPassword, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
if err != nil {
return "", err
}
return string(hashPassword), nil
}
说明:使用默认工作因子(10)生成带盐的哈希,若出错返回空字符串和错误。
CompareHashAndPassword
作用:验证密码与哈希是否匹配。
代码:
func CompareHashAndPassword(hashPassword string, password string) bool {
err := bcrypt.CompareHashAndPassword([]byte(hashPassword), []byte(password))
return err == nil
}
说明:返回 true
表示匹配,false
表示不匹配。
func main() {
password := "123456"
hashPassword, err := GenerateHashPassword(password)
if err != nil {
panic("生成加密密码失败")
}
fmt.Printf("生成的加密密码为:%s\n", hashPassword)
if CompareHashAndPassword(hashPassword, password) {
fmt.Println("匹配")
} else {
fmt.Println("不匹配")
}
}
bcrypt
简单安全,是 Go 中密码加密的优选。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。