争取以后每一篇文章都备份记录在云笔记中!
go get golang.org/x/crypto/bcrypt
# 如安装依赖包失败,请使用代理
export GOPROXY=https://goproxy.io,direct
or
export GOPROXY=https://goproxy.cn,direct
// 1、获取用户传来的pwd,使用字节切片转换
originPwd := []byte("password") // 用户传的实际密码值
// 2、调用 bcrypt.GenerateFromPassword 生成加密字符串
hashPwd, _ := bcrypt.GenerateFromPassword(originPwd, bcrypt.DefaultCost)
// 3、此时 hashPwd 为字节切片,实际加密字符串需使用string转换
string(hashPwd) // 可以将此加密串保存到数据库,可作为密码匹配验证
// 1、将数据库中的加密串做字节切片转换
// $2a$10$oxOlhX8ju5eIwHZkjTwMX.4q64EhyjLtX2m32b2V3CP8yeqzQNVHa
byteHashPwd := []byte("$2sxxx....") // 实际的加密字符串
// 2、调用 bcrypt.CompareHashAndPassword 证密码是否匹配
// 第一个参数为通过字节切片转换的加密的哈希串、第二个参数为字节切片转换过的用户输入密码值
err := bcrypt.CompareHashAndPassword(byteHashPwd, originPwd)
// 没有错误则密码匹配
if err != nil {
log.Println(err)
return false
}
-- END
写的不错,赞助一下主机费
暂无评论~~