Создание ключа в Java из пароля и соли с помощью AES 256

Я пишу фрагмент кода, который расшифровывает данные в Java, который зашифрован в некотором коде C ++ с помощью [poco lib] (http://pocoproject.org/docs/).

Код на C ++ похож, как показано ниже:

std::string password = "secret";
std::string salt("asdff8723lasdf(**923412");
CipherKey key("aes-256", password, salt);

Также с количеством итераций 2к.

DEFAULT_ITERATION_COUNT = 2000

Как мне создать этот же ключ в Java для расшифровки данных?
Что такое эквивалентный код в Java?

Я пытаюсь что-то вроде этого,

    SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
char[] passowrd = "secret".toCharArray();
byte[] salt = "asdff8723lasdf(**923412".getBytes();

KeySpec spec = new PBEKeySpec(passowrd,salt, 2000);
SecretKey tmp = factory.generateSecret(spec);
SecretKey secret = new SecretKeySpec(tmp.getEncoded(), "AES");

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

ОБНОВИТЬ
Я добавил Bounty Castle своему провайдеру безопасности, как указано user2504380

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]