0

現在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();
    }

ただし、これは次のencryptorexceptionで返されます。

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

私はliferayフォーラムにも投稿しましたが、ここの誰かが助けてくれることを望んでいました - 私は現在フック形式でこれをやろうとしています.ポートレットはより良い考えでしょうか?

どうもありがとう

4

2 に答える 2

1

Liferay はパスワードをハッシュしているため、パスワードを「解読する」という概念はありません。技術的に不可能です。一致する部分をブルート フォースすることはできますが、解読するだけではありません。

Liferay メッセージ ボード でより深い議論を参照してください。(ここにコピー/貼り付けするには多すぎます)

そこにも質問を投稿した場合、スレッドがディスカッションに価値を追加する場合は、あなたからこの投稿へのリンク (および/またはその逆のバージョン) を投稿してください。

于 2011-06-07T21:14:21.343 に答える
0

私は、Liferay がハッシュを使用してパスワードを暗号化していると考えていました (または期待していました)。この場合、同じ方法を使用して特定のパスワードを暗号化し、保存されているパスワードと照合する必要があります。

パスワードを解読する目的は何ですか? これにより、これを実装する場所 (フックまたはポートレット) が決まります。

于 2011-05-09T10:17:52.770 に答える