基本的に私は深くそれにこれを掘り下げるために持っていなかったが、これは
https://github.com/grails-plugins/grails-spring-security-core/blob/7f09c528bedcf53ff9d109dad725d68a54d36a2e/src/docs/passwords/salt.adoc
SystemWideSaltSourceとカスタムSaltSource
を助けるかもしれない春のセキュリティを使用する暗号化の形式を検討する必要がありますSpring Securityは、ユーザーごとに同じsaltを使用する、単純なSaltSource実装、 `{apidocs} org/springframework/security/authentication/dao/SystemWideSaltSource.html [SystemWideSaltSource]を提供しています。ユーザーごとに異なる値を使用するよりも堅牢性は低くなりますが、塩を使用しないよりも優れています。
次のようになりSystemWideSaltSourceを使用して、塩ソースBeanの例オーバーライド:application.groovy
import org.springframework.security.authentication.dao.SystemWideSaltSource
beans = {
saltSource(SystemWideSaltSource) {
systemWideSalt = 'the_salt_value'
}
}
にsaltSource Beanとして
リスト1.設定SystemWideSaltSourceは、プロセスを完全に制御を持っているために、 grails-app/conf/spring/resources.groovyにsaltSourceという名前でBeanを定義することで、SaltSourceインタフェースを実装し、プラグインの実装を独自のものに置き換えることができます:
リスト2. Co application.groovy
import com.foo.bar.MySaltSource
beans = {
saltSource(MySaltSource) {
// set properties
}
}
にsaltSource Beanのカスタム実装をnfiguringはまた、それが働いている方法を動作するようにデバッグにプラグインを取る可能性が理解するために、ここで見てみましょう:
https://github.com/grails-plugins/grails-spring-security-core/tree/7f09c528bedcf53ff9d109dad725d68a54d36a2e/src/main/groovy/grails/plugin/springsecurity/authentication/encoding
あなたは同じソルトキーを使用する2つのシステムでソルトアルゴリズムテストをテストする必要があります。両方のシステムで同じ方法で暗号化/復号化する必要があります。 (両者が同じドアキーを持っているので)
あなたはすでに春のセキュリティを所定の方法で暗号化しています(あなたには概要はありません)。
これは、2つのシステムに対して同じ塩でテストした場合、最も重要なことに、この塩を使用してスプリングセキュリティで構成された1つのテストシステムがあり、その結果をテストした場合です。ネットC#システムを最初に
また、私はそれを介して風邪をひいて、ユーザー名に関連するデフォルトの暗号化に関する何かを気付いた - それはあなたが他の目的のために何かを書くことができるかの手がかりを与えるかもしれない
パスワードは*ハッシュ*され暗号化されていないことを望みます。違いは最初のものは可逆的ではなく、これは重要な違いです。確かにNETで同じアルゴリズムを確実に実装できますが、手作業が必要です。 –
いや私はいくつかの研究をしており、それは唯一の方法だと思われます。私は私の発見を掲載する。 – Adds