在对一些加密代码进行故障排除时,我看到了一个奇怪的堆栈跟踪层次结构。我已经解决了原始问题,但对如何生成这样的堆栈跟踪感到好奇。任何人都可以启发我吗?
请注意,我不能逐字复制粘贴堆栈跟踪。我必须删除可能暴露专有代码的框架。
businesscode.BusinessException: Failed while generating session key
at businesscode.businessthing.BusinessMethod(BusinessApp.java:NN)
... NN more
Caused by: java.security.NoSuchProviderException: JCE cannot authenticate the provider XXX
at javax.crypto.SunJCE_b.a(DashoA13*..)
at javax.crypto.KeyGenerator.getInstance(DashoA13*..)
at businesslib.generateKey(BusinessLib.java:NN)
... NN more
Caused by: javax.util.jar.JarException: Cannot parse X.jar
at javax.crypto.SunJCE_c.a(DashoA13*..)
at javax.crypto.SunJCE_b.b(DashoA13*..)
at javax.crypto.SunJCE_b.a(DashoA13*..)
... 25 more
为什么方法名称如 a 和 b (SunJCE_c.a, SunJCE_b.b)和文件/行信息为 DashoA13*?
Oracle Java 6 32 位,在 64 位 Linux 和 32 位 Windows 上运行。
这可能是因为某些信息不可用,可能是由于运行时优化?还是一些故意的混淆?杰尼?
导致这种情况的问题是第三方加密提供程序被错误地打包在 jar 文件中。
编辑:最初的问题NoSuchProviderException: JCE cannot authenticate the provider...
(感谢 Siva 和 owlstead 让我想起签名的罐子 :)