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
}
相关推荐
Fairy要carry3 分钟前
面试-Agent上下文过载、步骤混乱的问题
开发语言·python
程序员Ctrl喵10 分钟前
异步编程:Event Loop 与 Isolate 的深层博弈
开发语言·flutter
liuyao_xianhui18 分钟前
优选算法_两数之和_位运算_C++
java·开发语言·数据结构·c++·算法·链表·动态规划
童话ing28 分钟前
【Golang】Golang Map数据结构底层原理
数据结构·golang·哈希算法
IT猿手31 分钟前
MATLAB模拟四旋翼无人机飞行,机翼可独立旋转
开发语言·matlab·无人机
代龙涛41 分钟前
WordPress 主题开发指南:模板文件、函数与页面选型规则
开发语言·后端·php·wordpress
代码探秘者42 分钟前
【大模型应用】6.RAG 场景下的向量+关键词混合检索
java·开发语言·人工智能·python·spring
RFCEO1 小时前
JavaScript基础课程十四、原型与原型链(JS 核心底层)
开发语言·原型模式·prototype原型详解·javascript基础课·构造函数原型方法定义与使用·js原型链继承机制入门·t原型链顶层null原理
liuyao_xianhui1 小时前
优选算法_位运算_只出现一次的数字3_C++
开发语言·数据结构·c++·算法·leetcode·链表·动态规划