GO語言密碼加解密(bcrypt)


bcrypt加密算法介紹
bcrypt算法對於同一個密碼,每次生成的hash不一樣

業務流程

對用戶注冊時傳入的密碼進行加密
//此方法生成hash值

HashAndSalt([]byte("password"))     //password為string類型

將第一次生成的密碼hash值存入數據庫

密碼驗證

hashedPwd為保存在數據庫中的密碼hash,password為前端傳過來要驗證的密碼
ComparePasswords 方法返回true說明密碼驗證通過

ValidatePasswords(hashedPwd string,[]byte("password"))      

封裝加密和驗證方法

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 ValidatePasswords(hashedPwd string, plainPwd []byte) bool {
    byteHash := []byte(hashedPwd)
    err := bcrypt.CompareHashAndPassword(byteHash, plainPwd)
    if err != nil {
        return false
    }
    return true
}
鏈接:http://events.jianshu.io/p/156bed22328f


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM