Преобразовать байт-массив в секретный ключ
Я пытаюсь преобразовать массив байтов в свой оригинальный 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 для... [Имя класса]" - которого я просто не получаю.
Я предполагаю, что это просто небольшая ошибка, но я просто не могу понять. Может кто-нибудь, пожалуйста, помогите мне здесь?
Ответы
Ответ 1
Вам нужно использовать ключевое слово new
для вызова конструктора и создания объекта.
SecretKey originalKey = new SecretKeySpec(encodedKey, 0, encodedKey.length, "AES");
Когда вы пытаетесь вызвать его без new
, компилятор считает, что это может быть метод, который вы определили внутри этого класса, следовательно, ваше сообщение об ошибке.