Ошибка CLI Jasypt Операция невозможна (неверный ввод или параметры) - PullRequest
1 голос
/ 16 января 2020

Я столкнулся с проблемой, идентичной Командная строка Jasypt-клиент шифрование «Операция невозможна» , однако этот пост предназначен для гораздо более старой версии Java.

I ' я проверил путь, указанный для java (в java_home ниже), и вижу папку lib \ security \ policy \ unlimited с необходимыми файлами .jar, но я все еще получаю приведенную ниже ошибку.

Хотя это может или может Я не могу заставить arg ivGeneratorClassName = RandomIvGenerator работать, что сводит меня с ума почти одинаково. Он генерирует исключение ClassNotFound, но Джордж, когда я расширяю его в Eclipse, присутствует класс org.jasypt.iv.RandomIvGenerator.

Вывод Jasypt:

C:\jsypt\bin>encrypt.bat input=SomeVeryLongPassword password=MixItUpALot algorit
hm=PBEWITHHMACSHA256ANDAES_256

----ENVIRONMENT-----------------

Runtime: Oracle Corporation Java HotSpot(TM) Client VM 25.171-b11



----ARGUMENTS-------------------

algorithm: PBEWITHHMACSHA256ANDAES_256
input: SomeVeryLongPassword
password: MixItUpALot



----ERROR-----------------------

Operation not possible (Bad input or parameters)

Список алгоритмов (отформатирован в быть немного более читабельным):

    C:\jsypt\bin>listAlgorithms.bat

    DIGEST ALGORITHMS:   [MD2, MD5, SHA, SHA-224, SHA-256, SHA-384, SHA-512]

    PBE ALGORITHMS:      [PBEWITHHMACSHA1ANDAES_128, PBEWITHHMACSHA1ANDAES_256, PBEWITHHMACSHA224ANDAES_128, 
    PBEWITHHMACSHA224ANDAES_256, PBEWITHHMACSHA256ANDAES_128, PBEWITHHMACSHA256ANDAES_256, PBEWITHHMACSHA384ANDAES_128, 
PBEWITHHMACSHA384ANDAES_256, PBEWITHHMACSHA512ANDAES_128, PBEWITHHMACSHA512ANDAES_256, PBEWITHMD5ANDDES,  
PBEWITHMD5ANDTRIPLEDES, PBEWITHSHA1ANDDESEDE, PBEWITHSHA1ANDRC2_128, PBEWITHSHA1ANDRC2_40, PBEWITHSHA1ANDRC4_128,
PBEWITHSHA1ANDRC4_40]

Java Версия:

C:\jsypt\bin>java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) Client VM (build 25.171-b11, mixed mode, sharing)

Java Домашняя страница:

C:\jsypt\bin>set JAVA_HOME
JAVA_HOME=C:\Program Files (x86)\Java\jre1.8.0_171

Быстрый запуск приведенной ниже программы выход: 2147483647, который указывает, что неограниченное включено. Так что я полностью потерян.

try {
int maxKeyLen = Cipher.getMaxAllowedKeyLength("AES");
System.out.println(maxKeyLen);
} catch (Exception e) {
    System.out.println(e);
}

EDIT : Это похоже на выполнение CLI. Скомбинируйте приведенный ниже код из примера использования (изменив алгоритм), и он сможет сгенерировать зашифрованный пароль. Ниже приведен обходной путь для меня, но я бы хотел сделать это из CLI , так как нет необходимости редактировать / компилировать / запускать его каждые 90 дней, когда пароль должен быть изменен.

try {
         StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
         encryptor.setPassword("jasypt"); // could be got from web, env variable...
         encryptor.setAlgorithm("PBEWITHHMACSHA256ANDAES_256");
         encryptor.setIvGenerator(new RandomIvGenerator());
         String encrypted = encryptor.encrypt("ThisisaATest");
         System.out.println(encrypted);
} catch (Exception e) {
    System.out.println(e);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...