每日一库:Go 中的 bcrypt 加密库

安装

 

bash

代码解读

复制代码

go get golang.org/x/crypto/bcrypt

核心函数

1. GenerateHashPassword

作用:将明文密码生成加密哈希。 代码

 

go

代码解读

复制代码

func GenerateHashPassword(password string) (string, error) { hashPassword, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost) if err != nil { return "", err } return string(hashPassword), nil }

说明:使用默认工作因子(10)生成带盐的哈希,若出错返回空字符串和错误。

2. CompareHashAndPassword

作用:验证密码与哈希是否匹配。 代码

 

go

代码解读

复制代码

func CompareHashAndPassword(hashPassword string, password string) bool { err := bcrypt.CompareHashAndPassword([]byte(hashPassword), []byte(password)) return err == nil }

说明:返回 true 表示匹配,false 表示不匹配。

示例

 

go

代码解读

复制代码

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("不匹配") } }

优点

  • 抗暴力破解,内置盐值。

使用场景

  • 用户注册、登录。

注意事项

  • 计算成本高,密码上限 72 字节。

总结

bcrypt 简单安全,是 Go 中密码加密的优选。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值