ホームページ >バックエンド開発 >Golang >Go と Node.js の間で Bcrypt パスワード ハッシュの互換性を確保するにはどうすればよいですか?

Go と Node.js の間で Bcrypt パスワード ハッシュの互換性を確保するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-03 07:30:10644ブラウズ

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

Go と Node.js 間の Bcrypt パスワード ハッシュの互換性

Node.js から Go への移行では、下位互換性を維持することが重要ですユーザーパスワードはデータベースに保存されます。これには、Go で Node.js の bcrypt パスワード ハッシュ機能を複製する必要があります。

Node.js では、bcrypt 暗号化コードは bcrypt ライブラリを利用して、ユーザーのパスワードからソルト付きハッシュを生成します。 golang.org/x/crypto/bcrypt パッケージを使用した Go の同等のコードは次のとおりです。

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

この関数は、Node.js コードによって生成された出力と互換性のあるハッシュされたパスワード文字列を生成します。

次の Go の実際の例は、bcrypt パスワード ハッシュ プロセスを示しています:

package main

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

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

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

    err = bcrypt.CompareHashAndPassword(hashedPassword, password)
    if err == nil {
        fmt.Println("Password matches hash.")
    } else {
        fmt.Println("Password does not match hash.")
    }
}

以上がGo と Node.js の間で Bcrypt パスワード ハッシュの互換性を確保するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。