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
}
相关推荐
**蓝桉**2 分钟前
负载均衡概述
开发语言·阿里云·云计算·负载均衡
:1214 分钟前
java面试基础
java·开发语言
代码羊羊5 分钟前
Rust泛型编程:从零成本抽象到极致性能
开发语言·windows·rust
小樱花的樱花6 分钟前
Linux Shell命令入门
linux·服务器·开发语言
沫璃染墨6 分钟前
C++ std::list 深度解析:迭代器、splice 核心接口与排序效率全解
开发语言·c++
没有天赋那就反复8 分钟前
C++里面引用参数和实参的区别
开发语言·c++·算法
MinterFusion9 分钟前
如何使用Qt5在窗口中显示矩形(v0.1.3)(下)
开发语言·qt·编程·明德融创·窗口中绘制矩形
Mr.E514 分钟前
odoo18 关闭搜索框点击自动弹出下拉框
开发语言·前端·javascript·odoo·owl·odoo18
xyq202415 分钟前
MongoDB GridFS
开发语言
TIEM_6916 分钟前
C++string接口(下)|修改器、字符串操作、成员常量、非成员函数重载
开发语言·c++