最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Golang使用bcrypt實(shí)現(xiàn)密碼加密和校驗(yàn)的操作代碼

 更新時(shí)間:2024年05月20日 14:53:32   作者:彭世瑜  
bcrypt可以用于數(shù)據(jù)庫(kù)中的用戶密碼保存,相比md5而言更加的安全可靠,這篇文章主要介紹了Golang使用bcrypt實(shí)現(xiàn)密碼加密和校驗(yàn)的操作代碼,需要的朋友可以參考下

bcrypt可以用于數(shù)據(jù)庫(kù)中的用戶密碼保存,相比md5而言更加的安全可靠

文檔

https://pkg.go.dev/golang.org/x/crypto/bcrypt

文檔上給出了標(biāo)準(zhǔn)文檔,這個(gè)庫(kù)是下面這個(gè)文件描述的算法golang實(shí)現(xiàn):

https://www.usenix.org/legacy/event/usenix99/provos/provos.pdf

安裝

go get -u golang.org/x/crypto/bcrypt

加密示例

package main
import (
    "fmt"
    "golang.org/x/crypto/bcrypt"
)
func main() {
    password := "123456"
    hashedPassword, _ := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
    fmt.Println(string(hashedPassword))
    // $2a$10$EvdBpymvP7uDfI0TFRD6RO3YXLwQWUVYKMDqbWFloYCtyNXHCmbD2
    // $2a$10$6JDH6z7dJljoDo4VolpHbeIgzqHwhUvF1JRJ/h7Ibf/PjGtx.wZGG
}

可以看到,多次運(yùn)行后,生成的結(jié)果是不一樣的

bcrypt不能解密,不過可以比較加密后的數(shù)據(jù)和加密前的數(shù)據(jù)是否相匹配

package main
import (
    "fmt"
    "golang.org/x/crypto/bcrypt"
)
func main() {
    password := "123456"
    hashedPassword := "$2a$10$EvdBpymvP7uDfI0TFRD6RO3YXLwQWUVYKMDqbWFloYCtyNXHCmbD2"
    err := bcrypt.CompareHashAndPassword([]byte(hashedPassword), []byte(password))
    fmt.Println(err)
    // <nil>
}

由于算法的入?yún)⒑统鰠⒍际亲止?jié)類型的數(shù)據(jù),為了便于使用,可以將兩個(gè)方法簡(jiǎn)單封裝成一個(gè)工具類,將入?yún)⒑统鰠⒍几臑槭亲址愋偷臄?shù)據(jù)

package utils
import (
    "golang.org/x/crypto/bcrypt"
)
func GenerateFromPassword(password string) (string, error) {
    hashedPassword, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
    if err != nil {
        return "", err
    }
    return string(hashedPassword), err
}
func CompareHashAndPassword(hashPassword string, password string) bool {
    err := bcrypt.CompareHashAndPassword([]byte(hashPassword), []byte(password))
    return err == nil
}

到此這篇關(guān)于Golang使用bcrypt實(shí)現(xiàn)密碼加密和校驗(yàn)的文章就介紹到這了,更多相關(guān)Golang密碼加密和校驗(yàn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go語(yǔ)言必知的5個(gè)核心知識(shí)點(diǎn)之init、路徑、輸出、切片、Map

    Go語(yǔ)言必知的5個(gè)核心知識(shí)點(diǎn)之init、路徑、輸出、切片、Map

    數(shù)組和切片是?Go?語(yǔ)言中常見的數(shù)據(jù)結(jié)構(gòu),很多剛剛使用?Go?的開發(fā)者往往會(huì)混淆這兩個(gè)概念,當(dāng)然還有其他的一些知識(shí)點(diǎn),這篇文章主要介紹了Go語(yǔ)言必知的5個(gè)核心知識(shí)點(diǎn)之init、路徑、輸出、切片、Map的相關(guān)資料,需要的朋友可以參考下
    2026-05-05
  • go語(yǔ)言中if語(yǔ)句用法實(shí)例

    go語(yǔ)言中if語(yǔ)句用法實(shí)例

    這篇文章主要介紹了go語(yǔ)言中if語(yǔ)句用法,以實(shí)例形式分析了if語(yǔ)句的定義及使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-02-02
  • 詳解Golang如何實(shí)現(xiàn)節(jié)假日不打擾用戶

    詳解Golang如何實(shí)現(xiàn)節(jié)假日不打擾用戶

    這篇文章主要為大家介紹了Golang如何實(shí)現(xiàn)節(jié)假日不打擾用戶過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Golang多線程爬蟲高效抓取大量數(shù)據(jù)的利器

    Golang多線程爬蟲高效抓取大量數(shù)據(jù)的利器

    Golang多線程爬蟲是一種高效抓取大量數(shù)據(jù)的利器。Golang語(yǔ)言天生支持并發(fā)和多線程,可以輕松實(shí)現(xiàn)多線程爬蟲的開發(fā)。通過使用Golang的協(xié)程和通道,可以實(shí)現(xiàn)爬蟲的高效并發(fā)抓取、數(shù)據(jù)處理和存儲(chǔ)
    2023-05-05
  • golang中sync.Map并發(fā)創(chuàng)建、讀取問題實(shí)戰(zhàn)記錄

    golang中sync.Map并發(fā)創(chuàng)建、讀取問題實(shí)戰(zhàn)記錄

    這篇文章主要給大家介紹了關(guān)于golang中sync.Map并發(fā)創(chuàng)建、讀取問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • 深入理解Golang?Channel?的底層結(jié)構(gòu)

    深入理解Golang?Channel?的底層結(jié)構(gòu)

    這篇文章主要介紹了深入理解Golang?Channel?的底層結(jié)構(gòu),Go?語(yǔ)言的?channel?底層是什么數(shù)據(jù)結(jié)構(gòu)?下面我們就一起來深入解析一下?channel,需要的朋友可以參考下
    2022-01-01
  • 使用Gin框架返回JSON、XML和HTML數(shù)據(jù)

    使用Gin框架返回JSON、XML和HTML數(shù)據(jù)

    Gin是一個(gè)高性能的Go語(yǔ)言Web框架,它不僅提供了簡(jiǎn)潔的API,還支持快速的路由和中間件處理,在Web開發(fā)中,返回JSON、XML和HTML數(shù)據(jù)是非常常見的需求,本文將介紹如何使用Gin框架來返回這三種類型的數(shù)據(jù),需要的朋友可以參考下
    2024-08-08
  • 在Go中使用JSON(附demo)

    在Go中使用JSON(附demo)

    Go開發(fā)人員經(jīng)常需要處理JSON內(nèi)容,本文主要介紹了在Go中使用JSON,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Go定時(shí)器的三種實(shí)現(xiàn)方式示例詳解

    Go定時(shí)器的三種實(shí)現(xiàn)方式示例詳解

    這篇文章主要為大家介紹了Go定時(shí)器的三種實(shí)現(xiàn)方式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 一文了解Go語(yǔ)言中的函數(shù)與方法的用法

    一文了解Go語(yǔ)言中的函數(shù)與方法的用法

    與大部分語(yǔ)言一致,Go語(yǔ)言中的函數(shù)與方法定義與其他語(yǔ)言基本一致,但也有一定的差別。本文將通過示例詳細(xì)講講Go語(yǔ)言中函數(shù)與方法的用法,感興趣的可以學(xué)習(xí)一下
    2022-07-07

最新評(píng)論

麻江县| 瑞丽市| 东阳市| 育儿| 乳山市| 花莲市| 都江堰市| 南京市| 平原县| 手游| 庆城县| 什邡市| 佛教| 商城县| 杨浦区| 永丰县| 凤庆县| 扶余县| 罗平县| 海城市| 北票市| 久治县| 嘉荫县| 凤阳县| 寿阳县| 本溪市| 石阡县| 安塞县| 涞水县| 汾阳市| 迁安市| 航空| 松滋市| 社旗县| 东阳市| 苍溪县| 民县| 炎陵县| 锡林郭勒盟| 黄山市| 永清县|