首页 > 其他分享 >Go语言中密码加密校验

Go语言中密码加密校验

时间:2023-02-25 15:35:33浏览次数:43  
标签:加密 err fmt 校验 密码 密文 Go bcrypt

使用go自带的库bcrypt

  1. bcrypt是不可逆的加密算法,无法通过解密密文得到明文。
  2. bcrypt和其他对称或非对称加密方式不同的是,不是直接解密得到明文,也不是二次加密比较密文,而是把明文和存储的密文一块运算得到另一个密文,如果这两个密文相同则验证成功。

下载

go mod download golang.org/x/crypto

基础使用

package main

import (
	"fmt"

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

func main() {
	password1 := "abcdef"
	password2 := "aaaaaa"

	//加密密码
	b, err := bcrypt.GenerateFromPassword([]byte(password1), bcrypt.DefaultCost)
	if err != nil {
		panic(err)
	}
	fmt.Println(string(b))

	//对比密码
	err = bcrypt.CompareHashAndPassword(b, []byte(password2))
	if err != nil {
		fmt.Println("密码不正确")
	} else {
		fmt.Println("密码正确")
	}
}

/*
$2a$10$vQwzoSLD4tFM015PigJLvehFvgyNiM/OOugw.OX9HzD9zOjvrUX2.
密码不正确
*/

标签:加密,err,fmt,校验,密码,密文,Go,bcrypt
From: https://www.cnblogs.com/guangdelw/p/17154494.html

相关文章

  • golang中的close函数
    close函数是用于关闭通道的。官方解释(摘自close函数源代码注释):Theclosebuilt-infunctionclosesachannel,whichmustbeeitherbidirectionalorsend-only.Itsho......
  • golang 日志
    packagelogimport( "NOONASN/global" "github.com/natefinch/lumberjack" "go.uber.org/zap" "go.uber.org/zap/zapcore" "os" "path" "path/filepath")func......
  • iOS的文件校验码生成 - ObjC编写
    一般我们比较文件的完整性,就是对文件进行哈希计算,通常就是MD5或者SHA256或者SHA1计算,如果生成的结果字符串是一样的,则表明文件没有被篡改比如我们在网络上下载的安装包,下载......
  • 在Google的TPU上训练Fashion MNIST图像识别模型
    作者|张强今天我们要训练的模型是基于Keras框架,来训练FashionMNIST图像识别模型,该模型和MNIST是一样的分类数量。​​MNIST​​​的分类是0到9的十个数字​​​FashionMN......
  • Python3的AES加密和解密
    此加密和解密的秘钥的长度必须是16位、24位或者32位importbase64importosfromCrypto.CipherimportAES#AESkeymustbeeither16,24,or32byteslongaes_key="1......
  • Golang Slice
    Golang—SliceSlice是Go语言中的一种数据类型,又称动态数组,依托数组实现,可以方便的进行扩容、传递等,实际使用中比数组更灵活。实现原理Slice依托数组实现,底层数组对......
  • Django ORM 多表操作:一对一、一对多、多对多的增删改,基于对象/双下划线的跨表查询 (二
    DjangomodelORM数据表相关操作分析思路,创建数据表对于表操作,表之间的关联关系,必须理解他们之间的关系,对于编程很重要。可以看看映射关系、外键和relationship查询,至少明......
  • Google搜索网站样貌的变化
    Google诞生于Stanford1999年千禧年时的google2001年2002年2003年2004年2005年2006年收购youtube2007年2008年2009年2010年2012年2016年201......
  • MongoDB
    MongoDBNoSQL(NoSQL=NotOnlySQL),意即反SQL运动,指的是非关系型的数据库,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运......
  • go语音 调用chatgpt api
    前提:要有chatgpt账号,不会注册的关注抖音:21402780125,有免费教程!!要在Go中调用ChatGPTAPI,您可以使用Go的net/http包或其他HTTP客户端库来发送HTTP请求。以下是......