golang使用bcrypt加密算法进行密码的加密与校验
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>说明密码验证通过
封装加密和验证方法
<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加密
接口安全机制