MD5 и Hibernate Query - PullRequest
       10

MD5 и Hibernate Query

0 голосов
/ 10 января 2011
public Login authenticate(Login login) {
         String query = "SELECT L FROM Login AS L WHERE L.email=? AND L.password=?";
         Object[] parameters = { login.getEmail(), login.getPassword() };
         List<Login> resultsList = (getHibernateTemplate().find(query,parameters));
         if (resultsList.isEmpty()) {
             //error dude
         }
         else if (resultsList.size() > 1) {
             //throw expections
         }
         else {
           Login login1 = (Login) resultsList.get(0);
           return login1;
         }       
       return null;  
    }

У меня пароль col для таблиц БД установлен как MD5, теперь как его восстановить здесь

Ответы [ 2 ]

2 голосов
/ 10 января 2011

Вам нужно будет хешировать пароль и передать хеш в качестве параметра.Например,

String hash = hash(login.getPassword());
Object[] parameters = { login.getEmail(), hash };

Как реализовать метод hash(..), см. в этом вопросе Однако избегайте MD5.Вместо этого используйте SHA.

1 голос
/ 10 января 2011

Полагаю, вы захотите преобразовать ваш L.password в md5 перед вызовом аутентификации.

См. эту полезную ссылку

import java.security.*;

..

byte[] bytesOfMessage = yourString.getBytes("UTF-8");

MessageDigest md = MessageDigest.getInstance("MD5");
byte[] thedigest = md.digest(bytesOfMessage);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...