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

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

Barbara Streisand
リリース: 2024-10-30 23:25:30
オリジナル
639 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート