public byte[] encryptWithAesKey(byte[] key, byte[] iv, byte[] data) {
try {
IvParameterSpec ivSpec = new IvParameterSpec(iv);
Cipher cipher = Cipher.getInstance("AES/CTR/NoPadding");
SecretKeySpec aesKey = new SecretKeySpec(key, "AES");
cipher.init(Cipher.ENCRYPT_MODE, aesKey, ivSpec);
return cipher.doFinal(data);
} catch (Exception e) {
System.out.println("Error while encrypting: " + e.toString());
}
return null;
}
StackTrace如下所示:
System.out: encryptwithAES:[B@b8979fbIV:[B@78d7813data:[B@3841a50
System.err: java.lang.IllegalArgumentException: Empty key
System.err: at javax.crypto.spec.SecretKeySpec.<init>(SecretKeySpec.java:96)
System.err: at com..Security.SecurityController.encryptWithAesKey(SecurityController.java:93)
System.err: at com..Controllers.Files.FileController.encryptAndSaveFile(FileController.java:75)
System.err: at com..Controllers.Files.FileControllerRN.encryptAndSaveFileRN(FileControllerRN.java:68)
System.err: at java.lang.reflect.Method.invoke(Native Method)
System.err: at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:372)
System.err: at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:151)
System.err: at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
System.err: at android.os.Handler.handleCallback(Handler.java:883)
System.err: at android.os.Handler.dispatchMessage(Handler.java:100)
System.err: at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:27)
System.err: at android.os.Looper.loop(Looper.java:214)
System.err: at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:226)
System.err: at java.lang.Thread.run(Thread.java:919)
这(或类似的)是抛出异常的代码:
public SecretKeySpec(byte[] key, String algorithm) {
if (key == null || algorithm == null) {
throw new IllegalArgumentException("Missing argument");
}
if (key.length == 0) {
throw new IllegalArgumentException("Empty key");
}
this.key = key.clone();
this.algorithm = algorithm;
}
请注意,当key
数组长度为零时,会引发异常。实际上,这是secretkeyspec
构造函数将抛出此异常并带有此消息1的唯一情况。因此没有任何怀疑的余地,这就是您的代码正在做的事情。
解决方案:修复调用encryptithaeskey
的代码,使其不会传入零长度字节数组。
这并不能证明字节数组不是零长度。请阅读以下内容:为什么我在Java中打印数组时会得到垃圾值?
简而言之,[b@b8979fb
告诉您它是一个非空字节数组,但绝对不知道它的长度或内容。
这返回了一个异常,但在Android28 Lower中运行良好。
我正在尝试在网页上嵌入一个小程序。我已经将代码导出为IntelliJ中的压缩applet。现在,当我尝试运行它时,我得到以下堆栈跟踪: 我相信该错误是由于试图使用类中的方法获取图像而导致的。这是代码: 下面是我在HTML中使用的标记以供参考: 如果您想亲自查看错误,只需访问http://nrubin29.github.io/freefall-applets/ 谢谢!
在Client.ExecuteMethod调用上。 为什么会发生这种情况?
这个代码有问题 抛出异常 UnsatisfiedDependencyException:创建文件[D:\IdeaProjects\MaraphonSkills(3)\Target\类\COM\Maraphon\MaraphonSkills\Controllers\AdminController.class]中定义的名为“Admin Controller”的bean时出错:通过构造函数参数0表示的不
NestedServletException:请求处理失败;嵌套异常是java.lang.IllegalArgumentException:页面不能为空!
我有一个测试车, 而applicatin.xml是 但它报告异常 java.lang.IllegalArgumentException:未知实体:com.chinalbs.entity.conductor(位于org.hibernate.ejb.abstractentyManagerImpl.persist(abstractentyManagerImpl.java:842)(位于sun.refle
我将代码提交到集群运行,但遇到了以下错误。 '''java.lang.IllegalArgumentException:太大的帧:位于org.sparkproject.guava.base.preconditions.checkArgument(preconditions.java:119)位于org.apache.spark.network.util.TransportFrameDecoder.