パスワードハッシュに使用するものjBCryptを使用しない理由は何ですか?

StackOverflow https://stackoverflow.com/questions/622732

質問

jBCrypt を新しいWebアプリケーションのパスワードハッシュに使用することを計画しています。私が読んだものの中で最高のものになるはずです。使用する前に使用したことがないので、使用しない理由があるかどうかを調べています。

これがあります:

  • Mavenリポジトリ(mvnrepository.orgでjbcryptおよびbcryptを検索)でそれを見つけられませんでした。これは、可能であればMavenリポジトリを使用して依存関係を管理したいのでダウナーです。 jBCryptがパスワードハッシュの最善のソリューションである場合、独自のローカルリポジトリをセットアップし、その方法で利用可能にする必要があります。それとも私はそれを逃しただけですか?多分それはどこかにあるのでしょうか?
  • バージョン0.2のみですが、とにかく安定している可能性があり、バージョン番号が低い理由には他の原因がありますか?
役に立ちましたか?

解決

jBcryptは、パスワードの暗号化アルゴリズムとしておそらく問題ありません。フグは比較的強いです。 Blowfish自体に実装上の欠陥がいくつか報告されていますが、jBcryptについてはあまり報告されていません。一方、Blowfishは他のアルゴリズムほどテストされておらず、クラックスタイルの既知のプレーンテキスト攻撃は、予想以上によく機能することが多く、驚くべき暗号ギークです。

だからここに私が提案するものがあります:

  • 先に進み、jBcryptを使用しますが、UNIXシステムで/ etc / shadowを使用する場合と同様に、暗号化されたパスワードファイルを合理的に可能な範囲で保護します。
  • Nikhilの提案に反して、次の2つの理由でソースをバージョン管理に プルします。(1)ビルドするたびに必要になるため、どこに保管するか(2) )jBcryptを実行している人は常に他の事柄に移行するチャンスがあり、配送の直前にぶら下がることに気づきたくありません(これは必然的にわかります)。 )この種の状況では、ソースをコード上にあるかのようにバージョン管理に配置し、新しいバージョンを自分で作成したかのように変更を挿入できます。通常よりも複雑になる必要はありません。

他のヒント

成熟していないという懸念については、jBcryptとより実績のあるBcryptの結果を比較する独自のJUnitテストをセットアップして、同じ結果が得られるかどうかを確認し、それらを提供することをお勧めしますjBcryptプロジェクトへ。

しかし、それはすでに完了しています:

  

... JUnitユニットのセットが付属しています   の正常な動作を検証するテスト   ライブラリとの互換性   の標準C実装   bcryptアルゴリズム。

JUnitテストを読んで、満足度を満たしているかどうかを確認することから始めましょう...

bcrypt自体は成熟しており、その標準化された小さなラッパーは特別なことは何もしないので、安定性が問題になるとは思いません。 Damien Millerの他のbcryptラッパー python-bcrypt に満足しています。バージョン0.1のみ。

私はMavenに不慣れですが、(異端の警告です!)bcryptのような単純なコンポーネントのバージョン管理が必要だとは思いません。サイトを引用すると、v0.1からv0.2への変更は、「正確性、誤植、APIの調整(完全な下位互換性)」でした。 TODOリストは空です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top