3

现在我正在使用 j 安全检查和 md5 来验证我的 jsp 页面。我想在将密码存储到数据库之前对其进行加盐。由于在学校限制访问,我无权创建一个触发器来注入一些盐。有没有其他方法可以做到这一点?

这是我的领域:

<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"
    />
4

2 回答 2

1

连忙说道:“不,你不能。至少,不是Simply”

事实上,摘要是由您的类继承的类中的public static final Digest(String credentials, String algorithm,String encoding)方法处理的。此方法直接调用MessageDigest实例,我认为该实例只能与“MD5”、“SHA-1”和“MD2”一起使用。因此,在应用 MD5 算法之前或之后,您无法对密码执行任何操作org.apache.catalina.realm.RealmBaseJDBCRealmDigest

但是,您可以实现一个提供程序来获得您想要的算法。但我警告你,这不是那么简单。

顺便说一句,我个人更喜欢使用 SHA-1 哈希密码而不是 MD5 密码,即使它是加盐的 :-)

于 2012-04-04T10:26:11.263 回答
1

我认为唯一的方法是自己实现一些功能(覆盖 JDBCRealm 的方法),例如authenticate.

于 2012-04-04T12:44:52.567 回答