39

我一直在尝试将字节数组转换为其原始的 SecretKey,但我没有更多的想法了。最有希望的尝试是这个:

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

在这里找到:将密钥转换为字符串,反之亦然

我使用的是import javax.crypto.spec.SecretKeySpec,所以应该正确使用SecretKeySpec的构造函数,至少参考http://docs.oracle.com/javase/1.5.0/docs/api/javax/加密/规范/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 回答