「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > syscall や scrypt を使用せずに Golang/App Engine でパスワードを安全にハッシュする方法

syscall や scrypt を使用せずに Golang/App Engine でパスワードを安全にハッシュする方法

2024 年 11 月 8 日に公開
ブラウズ:587

How to Securely Hash Passwords in Golang/App Engine Without syscall or scrypt?

syscall や scrypt を使用せずに Golang/App Engine でパスワードを安全にハッシュする

パスワード ハッシュには bcrypt と scrypt が一般的に使用されますが、これらは使用できない場合があります。 Syscall へのアクセシビリティにより、App Engine に適しています。代わりに、安全なパスワード ハッシュ化に go.crypto ライブラリを活用することを検討してください。

go.crypto パッケージは、pbkdf2 と bcrypt の両方のサポートを提供します。どちらの実装も完全に Go で記述されており、App Engine との互換性が確保されています。

1。 bcrypt の使用

次の手順を使用して bcrypt を実装します:

go get golang.org/x/crypto/bcrypt

使用例:

import "golang.org/x/crypto/bcrypt"

func clear(b []byte) {
    for i := 0; i 

これにより、

$2a$10$sylGijT5CIJZ9ViJsxZOS.IB2tOtJ40hf82eFbTwq87iVAOb5GL8e

2 のような出力が生成されます。 pbkdf2 の使用

pbkdf2 を使用した単純なハッシュの場合:

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))
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3