Вопрос

I've been trying to convert a byte array to its original SecretKey, but I've no more ideas left. The most promising attempt was this one:

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

found here: Converting Secret Key into a String and Vice Versa

I'm using the import javax.crypto.spec.SecretKeySpec, so the constructor for SecretKeySpec should be used correctly, at least referring to http://docs.oracle.com/javase/1.5.0/docs/api/javax/crypto/spec/SecretKeySpec.html.

Nonetheless I always get "The Method SecretKeySpec is undefined for ... [Class Name]" - which I just don't get.

I'm guessing it's just some minor mistake, but I just can't figure it out. Can someone please help me out here?

Это было полезно?

Решение

You need to use the new keyword to call the constructor and create the object.

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

When you try to call it without new, the compiler thinks it might be a method you've defined inside that class, hence your error message.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top