postgresql で play-framework 2.0 (java web-framework) を使用しています。
- 現在、ユーザーのパスワードのどの暗号化タイプが最も一般的ですか? ここ数年でMD5が盛んになってきていることがわかりました。
- Userクラス(したがって、postgresql DB)のフィールド「パスワード」の正しいデータ型は何ですか?
ありがとう
postgresql で play-framework 2.0 (java web-framework) を使用しています。
ありがとう
パスワードを暗号化するのではなく、ハッシュする必要があります (詳細については、この質問を参照してください)。現在推奨されているアプローチは、 bcryptのような適応ハッシュ アルゴリズムを使用することです。jBcryptは、使用できる堅実な Java 実装です。
DBタイプに関しては、文字列として安全に扱うことができます。
jBcrypt を Play フレームワークの内部暗号と一緒に使用しました (ここからアイデアを得ました: https://groups.google.com/forum/?fromgroups#!topic/play-framework/9KIUwWBjudQ[1-25] )
また、ユーザーの登録を追加したときに、パスワードにある程度の複雑さがあることを確認しました (少なくとも 8 マークの最小、大文字、1 つの数字)。など、基本的に名前を付けますか?ただし、セキュリティは暗号化だけではないことを指摘したいと思います。ケーキの半分は、ユーザーが複雑なパスワードを使用することを確認することです:)
パスワードをハッシュするには、SHA-x アルゴリズムを使用する必要があります。これは多かれ少なかれ MD5 の代替ハッシュ関数です。
MessageDigest.getInstance("SHA-512").digest(toBytes(toDigest)))
ただし、ハッシュ テーブル攻撃を避けるために、ハッシュする前にパスワードにソルトを追加してください。
DB 列は varchar である必要があります。長さは、使用する SHA アルゴリズムのバージョンによって異なります
ハイ