教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 golang使用bcrypt加密算法进行密码的加密与校验

golang使用bcrypt加密算法进行密码的加密与校验

发布时间:2021-12-16   编辑:jiaochengji.com
教程集为您提供golang使用bcrypt加密算法进行密码的加密与校验等资源,欢迎您收藏本站,我们将为您提供最新的golang使用bcrypt加密算法进行密码的加密与校验资源
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"/></svg><h1>bcrypt加密算法介绍</h1>

bcrypt算法对于同一个密码,每次生成的hash不一样

业务流程

<ol><li>对用户注册时传入的密码进行加密</li></ol><pre><code>//此方法生成hash值 HashAndSalt([]byte("password")) //password为string类型 </code></pre> <ol start="2"><li>

将第一次生成的密码hash值存入数据库

</li><li>

密码验证

<code>hashedPwd</code>为保存在数据库中的密码hash,<code>password</code>为前端传过来要验证的密码
ComparePasswords 方法返回<code>true</code>说明密码验证通过

</li></ol><pre><code>ComparePasswords(hashedPwd string,[]byte("password")) </code></pre>

封装加密和验证方法

<pre><code>package utils import ( "golang.org/x/crypto/bcrypt" ) // 加密密码 func HashAndSalt(pwd []byte) string { hash, err := bcrypt.GenerateFromPassword(pwd, bcrypt.MinCost) if err != nil { } return string(hash) } // 验证密码 func ComparePasswords(hashedPwd string, plainPwd []byte) bool { byteHash := []byte(hashedPwd) err := bcrypt.CompareHashAndPassword(byteHash, plainPwd) if err != nil { return false } return true } </code></pre> 到此这篇关于“golang使用bcrypt加密算法进行密码的加密与校验”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
golang使用bcrypt加密算法进行密码的加密与校验
Go Web 编程--使用 bcrpyt 哈希用户密码
PHP开发者如何做好密码保护以及Laravel底层密码存储和验证实现
【哈希密码】PHP比md5更安全的加密方式
PHP 数据加密的方法
PHP 加密:Password Hashing API
有关discuz程序中PHP加密函数的原理分析
密码学之对称加密
golang基础学习-AES加密
接口安全机制

[关闭]
~ ~