J'ai essayé de convertir un tableau d'octets en sa SecretKey d'origine, mais je n'ai plus d'idées. La tentative la plus prometteuse était celle-ci:
byte[] encodedKey = Base64.decode(stringKey);
SecretKey originalKey = SecretKeySpec(encodedKey, 0, encodedKey.length, "AES")
trouvé ici: Conversion de la clé secrète en une chaîne et vice versa
J'utilise l'import javax.crypto.spec.SecretKeySpec, donc le constructeur de SecretKeySpec doit être utilisé correctement, en se référant au moins à http://docs.Oracle.com/javase/1.5.0/docs/ api/javax/crypto/spec/SecretKeySpec.html .
Néanmoins, je reçois toujours "La méthode SecretKeySpec n'est pas définie pour ... [Nom de classe]" - ce que je ne comprends tout simplement pas.
Je suppose que ce n'est qu'une erreur mineure, mais je ne peux pas le comprendre. Quelqu'un peut-il m'aider ici?
Vous devez utiliser le mot clé new
pour appeler le constructeur et créer l'objet.
SecretKey originalKey = new SecretKeySpec(encodedKey, 0, encodedKey.length, "AES");
Lorsque vous essayez de l'appeler sans new
, le compilateur pense qu'il peut s'agir d'une méthode que vous avez définie dans cette classe, d'où votre message d'erreur.