convert Byte Array to Secret Key
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.
Horstus Horax
Updated on January 08, 2020Comments
-
Horstus Horax over 4 years
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?
-
Horstus Horax over 11 yearsI know, still - it's good to know not to be alone ;-) thanks again!
-
Kevin Meredith over 3 yearsCan you please say why you opted to use the 4-parameter constructor instead of
public SecretKeySpec(byte[] key, String algorithm)
? link. Thanks!