2012-03-26 6 views
3

今はjセキュリティーチェックとmd5を使用してjspページを認証しています。私はデータベースに格納する前にパスワードを塩にしたいと思います。学校でのアクセスが制限されているため、私は塩を注入するトリガを作成する権利がありません。これを行うための他の方法はありますか?ここmd5とsaltをjセキュリティーチェックで使用する

は私のレルムです:

<Realm 
    className="org.apache.catalina.realm.JDBCRealm" 
    driverName="com.mysql.jdbc.Driver" 
    connectionURL="jdbc:mysql://someurl" 
    connectionName="name" 
    connectionPassword="password" 
    userTable="name.users" 
    userNameCol="user_name" 
    userCredCol="user_password" 
    userRoleTable="name.users" 
    roleNameCol="role" 
    digest="MD5" 
    /> 
+0

あなたは 'j_security_check'を使ってどういう意味ですか?コンテナ管理の認証を使用しているということですか?どのサーバーを使用していますか?このアプリケーションの認証はどのように構成されていますか? – erickson

+0

私はjspアプリケーションを作っていて、glassfish v.7サーバーを使っています。だから、j_security_checkというアクションを持つログインページを設定してから、サーブレットの周りにセキュリティ制約を置いた。 – segFault

+0

アプリケーションに使用される「領域」を構成できますか?あるいは、あなたは少なくとも、どの分野が使用されているかを知っていますか? – erickson

答えて

1

すぐには言った:「いいえ、あなたは少なくとも、単純ではないことはできません。」実際には

は、ダイジェストがからorg.apache.catalina.realm.RealmBaseクラスにpublic static final Digest(String credentials, String algorithm,String encoding)方法で処理されますあなたのJDBCRealmクラスが継承します。このDigestメソッドは直接MessageDigestインスタンスを呼び出します。これは "MD5"、 "SHA-1"、 "MD2"としか使用できません。 MD5アルゴリズムを適用する前後にパスワードに何もできません

しかし、implement a providerには、必要なアルゴリズムを使用することができます。しかし、私はあなたに警告します、それほど単純ではありません。

ところで、私はpersonnally SHA-1を持っていることを好むだろうが、それは

+0

Saltedダイジェストは、同じパスワードに対して異なる値を返さなければなりません。したがって、authn中の 'digest'関数の結果を比較するので、JDBCRealmの標準実装は機能しません。 – kan

1

:-)塩漬けいた場合でも、MD5よりも、パスワードをハッシュ化された私は、唯一の方法はの独自の実装を作ることだと思いauthenticateのようないくつかの関数(JDBCRealmのメソッドをオーバーライドする)

関連する問題