1

一方では、次のようになっています。http: //forums.enterprisedb.com/posts/list/2481.page ここでは、フィールドをBYTEAとして宣言し、復号化できます。暗号化はdbレベルです。

反対側: https ://www.owasp.org/index.php/Hashing_Java ここではvarcharとして、承認するハッシュのみを比較します。

最後に、Springはhttp://static.springsource.org/spring-security/site/docs/3.1.x/apidocs/org/springframework/security/crypto/password/StandardPasswordEncoder.htmlを提供します+適用されるcharシークレット値はすべてに同じですパスワード?

どちらが最善のアプローチですか?(Springは、OWASPと同様のロジックを数行のコードでカプセル化することを理解しているので、Springに傾倒していますか?)

4

1 に答える 1

1

PostgreSQLエンコーディング:

  • アプリケーションはおそらくPostgreSQLに依存しているため、別のDBMSで使用する場合は、この部分を書き直す必要があります。
  • PostgreSQLが別のマシン上にある場合、パスワードはプレーンテキストとして転送されるため、アプリケーションとDBMSの間で何らかの形式の安全な通信を使用することを検討する必要があります。

OWASP vs Spring:

  • それらは非常に似ています。
  • どちらも塩を使用しています。
  • 春は秘密を使用します(Owaspは使用しません)。
  • もちろん、必要に応じてOwaspを変更してシークレットを使用することも、StandardPasswordEncoderシークレットなしで使用することもできます。
  • Springencode()は(unix / linuxでは通常どおり)saltを含む文字列を1つだけ返しますが、Owaspはsalt値に追加のデータベース属性を必要とします。
  • Springはシンプルで、2008年のOwaspWeb記事よりも保守が優れている可能性があります。
  • Owaspは機能を組み合わせています。パスワードをエンコード/チェックし、多くのJDBCコードも含まれています。
  • Springはパスワードをエンコード/チェックするだけで、パスワードの保存はあなたの責任です。しかし、おそらくあなたのフレームワークはあなたのためにそれをするか、あなたはあなた自身のためにそれを書くことができます。

私は使用しますStandardPasswordEncoder。これはよりシンプルで、Owaspと同じように機能します。

于 2011-10-16T19:07:52.350 に答える