Подтвердить что ты не робот

Преобразовать байт-массив в секретный ключ

Я пытаюсь преобразовать массив байтов в свой оригинальный SecretKey, но у меня больше нет идей. Самая многообещающая попытка заключалась в следующем:

byte[] encodedKey     = Base64.decode(stringKey);
SecretKey originalKey = SecretKeySpec(encodedKey, 0, encodedKey.length, "AES")

найдено здесь: Преобразование секретного ключа в строку и наоборот

Я использую импорт javax.crypto.spec.SecretKeySpec, поэтому конструктор для SecretKeySpec следует использовать правильно, по крайней мере ссылаясь на http://docs.oracle.com/javase/1.5.0/docs/api/javax/crypto/spec/SecretKeySpec.html.

Тем не менее, я всегда получаю "Метод SecretKeySpec undefined для... [Имя класса]" - которого я просто не получаю.

Я предполагаю, что это просто небольшая ошибка, но я просто не могу понять. Может кто-нибудь, пожалуйста, помогите мне здесь?

4b9b3361

Ответ 1

Вам нужно использовать ключевое слово new для вызова конструктора и создания объекта.

SecretKey originalKey = new SecretKeySpec(encodedKey, 0, encodedKey.length, "AES");

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