go 密码hash加密包 bcrypt

1.明文密码一般都会通过一套算法转成一条长长的字符串,密码验证这需要通过验证明文和加密字符串是否对应

2.go 有现成的hash算法包 "golang.org/x/crypto/bcrypt" 一般我们有一个工具包utils ,在工具里封装两个方法即可, 即 明文转成加密串 加密串和明文对比 两个方法

3.代码 在utils下建文件夹 和文件 utils/pwd/enter.go

enter.go 内容如下:

Go 复制代码
package pwd

import (
	"log"

	"golang.org/x/crypto/bcrypt"
)

// 将明文密码转为 hash密码
func HashPwd(pwd string) string {

	hash, err := bcrypt.GenerateFromPassword([]byte(pwd), bcrypt.MinCost)
	if err != nil {
		log.Println(err)
	}
	return string(hash)
}

// 对比hash密码  与明文密码是否为一对
func CheckPwd(hashPwd string, pwd string) bool {
	byteHash := []byte(hashPwd)
	bytePwd := []byte(pwd)
	err := bcrypt.CompareHashAndPassword(byteHash, bytePwd)
	if err != nil {
		log.Println(err)
		return false
	}
	return true
}
相关推荐
时寒的笔记3 分钟前
瑞数案例欧冶解读py和js文件最终版
开发语言·javascript·ecmascript
zmzb01033 分钟前
Python课后习题训练记录Day123
开发语言·python
艾莉丝努力练剑5 分钟前
【Qt】事件
服务器·开发语言·网络·数据库·qt·tcp/ip·计算机网络
PersistJiao5 分钟前
python环境下免费、专业的中英翻译
开发语言·windows·python·机器翻译
rqtz7 分钟前
【C++】源码编译 Qt5.15.3|Ubuntu22.04 下 ROS 开发环境搭建
开发语言·c++·qt·ros
Jun6268 分钟前
QT(9)-Qjson移植
开发语言·qt
施棠海8 分钟前
自定义并可深度定制的数字滚动选择器完整源代码与相关注意事项
java·开发语言
z落落13 分钟前
C# 索引器 this[]
开发语言·c#
csdn_aspnet17 分钟前
C# List 移除某个属性值中最大的值
开发语言·c#·list