ホームページ >バックエンド開発 >Golang >App Engine 上の Golang アプリケーションでパスワードを保護するにはどうすればよいですか?

App Engine 上の Golang アプリケーションでパスワードを保護するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-30 23:25:30614ブラウズ

How to Secure Passwords in Golang Applications on App Engine?

App Engine 上の Golang でのパスワードの保護

Web アプリケーションのパスワード ハッシュに関しては、セキュリティが最も重要です。 bcrypt などの一般的なライブラリは、特定のシステム コールに依存しているため App Engine には適していませんが、堅牢なレベルの保護を提供する代替方法があります。

セキュア ハッシュ オプション

App Engine は go.crypto パッケージを通じてハッシュ アルゴリズムをサポートしています。このパッケージは 2 つの安全なオプションを提供します:

  • pBkdF2 (パスワードベースのキー導出関数 2): ブルート フォース攻撃に対する耐性で知られる反復的な一方向関数。
  • bcrypt: パスワード保存用に特別に設計された、Blog ベースのハッシュ アルゴリズム。

推奨事項: bcrypt

使いやすさと実証済みの有効性を考慮すると、bcrypt が推奨される選択肢です。これは、高品質のハッシュを生成する使いやすいアルゴリズムです。

実装

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

func Crypt(password []byte) ([]byte, error) {
    defer clear(password)
    return bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost)
}

ctext, err := Crypt(pass)

if err != nil {
    log.Fatal(err)
}

fmt.Println(string(ctext))</code>

出力は次のような文字列になります。

a$sylGijT5CIJZ9ViJsxZOS.IB2tOtJ40hf82eFbTwq87iVAOb5GL8e

ハッシュ用の pbkdf2:

パスワード検証ではなくハッシュのみに重点を置く場合は、pbkdf2 を採用できます:

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

func HashPassword(password, salt []byte) []byte {
    defer clear(password)
    return pbkdf2.Key(password, salt, 4096, sha256.Size, sha256.New)
}

pass := []byte("foo")
salt := []byte("bar")

fmt.Printf("%x\n", HashPassword(pass, salt))</code>

これらを採用することで、安全なパスワード ハッシュ オプションにより、開発者は App Engine 上で実行される Golang アプリケーション上のユーザー認証情報を効果的に保護できます。

以上がApp Engine 上の Golang アプリケーションでパスワードを保護するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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