Расшифровать пароли liferay - PullRequest
0 голосов
/ 09 мая 2011

В данный момент играю с liferay, и я хочу получить имя пользователя и пароль.

Я могу получить имя пользователя и зашифрованный пароль, поэтому мне нужно расшифровать пароль - я подумал, что могу сделать это с помощью:

Company company;
    try {
        company = CompanyUtil.findByPrimaryKey(user.getCompanyId());
        password = Encryptor.decrypt(company.getKeyObj(), password);
    } catch (NoSuchCompanyException e) {
        e.printStackTrace();
    } catch (SystemException e) {
        e.printStackTrace();
    } catch (EncryptorException e) {
        e.printStackTrace();
    }

Это, однако, возвращает исключение шифрования:

com.liferay.util.EncryptorException: com.liferay.util.EncryptorException: javax.crypto.IllegalBlockSizeException: Input length must be multiple of 8 when decrypting with padded cipher

Я также разместил сообщения на форумах LifeRay, но надеялся, что кто-то здесь также сможет помочь - я сейчас пытаюсьчтобы сделать это в форме ловушки, будет ли лучше использовать портлет?

Большое спасибо

Ответы [ 2 ]

1 голос
/ 08 июня 2011

Liferay хэширует пароли, поэтому нет концепции «расшифровки» пароля: это технически невозможно. Вы можете грубо заставить некоторые соответствующие части, но не просто расшифровать его.

См. Более глубокое обсуждение на досках объявлений Liferay . (Это слишком много для копирования / вставки здесь)

Если вы также разместили свой вопрос там, пожалуйста, опубликуйте свою ссылку на это сообщение (и / или вице-версию), если ваша тема добавляет ценность обсуждению

0 голосов
/ 09 мая 2011

Я думал (или надеялся), что Liferay использует хеширование для шифрования паролей.В этом случае вам придется зашифровать данный пароль, используя тот же метод, и сравнить с сохраненным.

Какова ваша цель расшифровки пароля?Это определяет, в каком месте вы бы это реализовали - хук или портлет.

...