39

バイト配列を元の SecretKey に変換しようとしてきましたが、これ以上のアイデアは残っていません。最も有望な試みはこれでした:

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

ここにあります:秘密鍵を文字列に、またはその逆に変換する

インポート javax.crypto.spec.SecretKeySpec を使用しているため、少なくともhttp://docs.oracle.com/javase/1.5.0/docs/api/javax/を参照して、SecretKeySpec のコンストラクタを正しく使用する必要があります。 crypto/spec/SecretKeySpec.html .

それにもかかわらず、私は常に「The Method SecretKeySpec is undefined for ... [Class Name]」を取得します-これは取得できません。

ちょっとしたミスだと思うのですが、よくわかりません。誰かがここで私を助けてくれますか?

4

1 に答える 1

64

newコンストラクターを呼び出してオブジェクトを作成するには、キーワードを使用する必要があります。

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

なしで呼び出そうとするとnew、コンパイラはそれがそのクラス内で定義したメソッドである可能性があると考えるため、エラーメッセージが表示されます。

于 2013-01-07T21:37:14.363 に答える