ホームページ >バックエンド開発 >Golang >PHP の crypt() 関数と同等のパスワード ハッシュを Golang で実現するにはどうすればよいですか?

PHP の crypt() 関数と同等のパスワード ハッシュを Golang で実現するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-27 02:13:30762ブラウズ

How to Achieve Password Hashing in Golang Equivalent to PHP's crypt() Function?

Golang PHP の crypt() 関数と同等

PHP の crypt() 関数は、次のようなさまざまなアルゴリズムを使用して値をハッシュする機能が多用途です。 sha256、sha512、フグ。これらのバリエーションがあるため、正確に Golang に相当するものを見つけるのは難しい場合があります。

bcrypt を使用した代替ソリューション

Golang に正確に相当するものは存在しませんが、bcrypt は信頼できる代替手段を提供します。パスワードのハッシュ化。同様の機能を実現する方法は次のとおりです。

<code class="go">import "golang.org/x/crypto/bcrypt"

// Determines if the bcrypt version of "enter-new-password" matches the provided hash
check := bcrypt.CompareHashAndPassword([]byte("a$f5561d2634fb28a969f2dO8QeQ70f4bjCnF/.GvPpjj.8jgmtzZP2"), []byte("enter-new-password"))

// Log the result
log.Println(check)</code>

このコードは、「enter-new-password」の bcrypt バージョンが指定されたハッシュと一致する場合は nil を返し、そうでない場合はエラー オブジェクトを返します。

考慮事項:

  • PHP の crypt() 関数は幅広いハッシュ アルゴリズムを提供しますが、Golang ではハッシュ タイプとコストの明示的な指定が必要です。
  • 例ではただし、ハッシュ値内の「$2a$」プレフィックスの存在に基づいて、フグタイプのハッシュが想定されました。

以上がPHP の crypt() 関数と同等のパスワード ハッシュを Golang で実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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