私は通常、パスワードのハッシュを行うのにbcryptライブラリを使用しましたが、ライブラリの使用によりsyscall
が使用できなかったのです。私もscryptを試みました。どのような他の方法が安全で、どちらが最善の方法でしょうか?Golang/App Engine - ユーザーのパスワードを安全にハッシュする
答えて
go.cryptoをご覧ください。 pbkdf2とbcryptをサポートしています。 どちらの実装も純粋にGoで書かれており、GAEでうまく動作するはずです。
最も簡単に使用するのはおそらくbcryptです。
go get golang.org/x/crypto/bcrypt
使用例:: は、パッケージの実行を取得するには、単にハッシュをしたい場合は、
$2a$10$sylGijT5CIJZ9ViJsxZOS.IB2tOtJ40hf82eFbTwq87iVAOb5GL8e
PBKDF2を使用します。
import "golang.org/x/crypto/bcrypt"
func clear(b []byte) {
for i := 0; i < len(b); i++ {
b[i] = 0;
}
}
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))
を出力は次のようなものになります。例:
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))
なぜ 'defer clear(password)'が必要ですか? –
@HelinWangプレーンテキストのパスワードが保存されていた場所のメモリを上書きするのが好きです。 – nemo
ありがとう、それは興味深い点です。 –
- 1. ハッシュのないパスワードを安全に保存するには?
- 2. GetHashCodeを使用してユーザーのパスワードを「安全」にする
- 3. ユーザー名/パスワード(ローカル)を安全に保存する方法は?
- 4. パスワードを安全にURLエンコード
- 5. 安全なパスワードにSHAパスワードを使用
- 6. ログインとパスワードのハッシュをセッションに安全に保存していますか?
- 7. SFTPはユーザー名とパスワードを安全に送信しますか?
- 8. ハッシュされたパスワードを時折リフレッシュする方が安全ですか?
- 9. パスワードを複数回ハッシュすると安全性が向上しますか?
- 10. ユーザー/パスワードを安全なコマンドで渡す方法
- 11. bashで安全にパスワードを渡す
- 12. ユーザー名/パスワードをクリアに送信するのは安全ですか?
- 13. PSExecと安全なパスワード
- 14. パスワードをデータベースに保存する前に安全にハッシュする方法はありますか?
- 15. Json Web Tokenでユーザー名/パスワードなどの安全なデータを渡すには?
- 16. サーバーにパスワードを保存するのには安全です
- 17. Google Compute EngineでAppEngineソケットを安全に設定するには
- 18. PHPコードの中にパスワードを安全に保存するには?
- 19. 塩なしでパスワードをハッシュするのに十分な安全性を持つハッシュアルゴリズムはありますか?
- 20. Webアプリケーションのメールサーバーにパスワードを安全に保存する方法
- 21. 他のデータと同じデータベースにハッシュされたパスワードを保存することは安全ですか
- 22. 複数のsha1ハッシュのSha1ハッシュ - >ファイルを識別するための安全?
- 23. 変数内の安全なVaultパスワード
- 24. Apache htpasswd安全なパスワードの変更
- 25. データベースの安全な平文パスワード
- 26. rails - 安全なID /パスワードの作成
- 27. 安全なウェブサイトのパスワード記憶
- 28. Orca内のWix安全なパスワード
- 29. 安全にAndroid KeyStoreのパスワードを保存する方法
- 30. HeidiSQLのパスワードを安全に保存する方法
私がhttp://code.google.com/p/go/source/browse/scrypt/scrypt.go?repo=cryptoにあるscryptライブラリに伝えることができる限り、 'syscall'を使ってください。 – Intermernet
Hmm。私はそれを試して、私は同じエラーが発生します。私はpbkdf2ライブラリがそれを使用していると思う - 私はそれを試しても、それも死ぬ。 – benkraus