首頁 >後端開發 >Golang >如何確保 Node.js 和 Golang 之間的 Bcrypt 密碼哈希相容性?

如何確保 Node.js 和 Golang 之間的 Bcrypt 密碼哈希相容性?

Barbara Streisand
Barbara Streisand原創
2024-12-06 22:46:15812瀏覽

How Can I Ensure Bcrypt Password Hashing Compatibility Between Node.js and Golang?

Golang 中的Bcrypt 密碼雜湊:實作與Node.js 的相容性

將驗證系統從Node.js 遷移到Golang 需要解決密碼雜湊相容性問題。本文介紹了使用 Node.js bcrypt 及其在 Golang 中的等效方案 golang.org/x/crypto/bcrypt 的解決方案。

要在Golang 中複製Node.js bcrypt 產生的雜湊字串,請使用以下程式碼:

hashedPassword, err := bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost)

這是一個工作範例:

package main

import (
    "golang.org/x/crypto/bcrypt"
    "fmt"
)

func main() {
    password := []byte("MyDarkSecret")

    hashedPassword, err := bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost)
    if err != nil {
        panic(err)
    }
    fmt.Println(string(hashedPassword))

    err = bcrypt.CompareHashAndPassword(hashedPassword, password)
    fmt.Println(err) // nil means it is a match
}

透過利用golang.org/x/crypto/bcrypt,您可以在遷移到Golang 的同時確保與現有身分驗證系統的兼容性。

以上是如何確保 Node.js 和 Golang 之間的 Bcrypt 密碼哈希相容性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn