私はJbossでビルドを使用していますlogin-module
。ユーザーがパスワードとして入力したものをエンコードし、db
の暗号化されたパスワードと比較する必要があります。私は自分のアプリケーションをデバッグするとき、私は次の行を使用してDBにパスワードを格納するためにハッシュアルゴリズムとハッシュコーディング
<module-option name="hashAlgorithm" value="MD5"/>
<module-option name="hashEncoding" value="base64"/>
は
newUser.setPassword(DatatypeConverter.printBase64Binary(purePassword.getBytes("UTF-8")));
それが表示されます: から= MTIzNDU2Nzg=
- 暗号化されたパスワードをユーザーログイン=
JdVa0oOqQAr0ZMdtcTwHrQ==
の
質問:
- 何が起こっていますか?いつjbossは
base64
アルゴリズムを使用するのですか?md5
hashAlgorithm
とhashEncoding
の違いは何ですか?
〜100msの間、ランダムな塩でHMACを繰り返し、塩をハッシュで保存します。 password_hash、PBKDF2、Bcryptなどの関数を使用します。要点は、攻撃者が無差別にパスワードを見つけるのに多くの時間を費やすことです。 [パスワードを安全にハッシュする方法、The Theory](http://security.stackexchange。セキュアスタックエクスチェンジャーのcom/questions/211/how-to-securely-hash-passwords/31846#31846) OWASP(オープンWebアプリケーションセキュリティプロジェクト)[パスワード保存チートシート](https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet#Leverage_an_adaptive_one-way_function)を参照してください。 – zaph