используя MD5 и соль с J проверки безопасности - PullRequest
3 голосов
/ 27 марта 2012

Сейчас я использую проверку безопасности 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"
    />

Ответы [ 2 ]

1 голос
/ 04 апреля 2012

Я думаю, что единственный способ - это создать собственную реализацию нескольких функций (переопределяя методы JDBCRealm), таких как authenticate.

1 голос
/ 04 апреля 2012

Быстро сказал: «Нет, вы не можете. По крайней мере, не просто»

Фактически, дайджесты обрабатываются методом public static final Digest(String credentials, String algorithm,String encoding) в классе org.apache.catalina.realm.RealmBase, от которого наследуется ваш класс JDBCRealm,Этот Digest метод вызывает напрямую MessageDigest экземпляр, который можно использовать только с "MD5", "SHA-1" и "MD2".Таким образом, вы ничего не можете сделать со своим паролем до или после применения вашего алгоритма MD5

Но вы можете реализовать поставщика , чтобы иметь нужный вам алгоритм.Но я предупреждаю вас, это не так просто.

И, кстати, я лично предпочел бы иметь хешированный пароль SHA-1, чем пароль MD5, даже если он соленый: -)

...