我必须运行一个相当旧的程序代码,它使用 ABA-provider for JCE。 所有类都可以在源文件夹中找到。但是,会出现 NoSuchProviderException:“JCE 无法验证提供程序 ABA”。
我在论坛中找到了一些相关主题,但它们无法帮助我。
这就是我所做的:
ABAProvider prov = new ABAProvider();
Security.addProvider(prov);
在 Debug模式下 prov 已初始化,但这会引发异常:
keyFactory = SecretKeyFactory.getInstance( "DES", "ABA" );
我希望这些信息可以帮助你帮助我:) 提前致谢!
最佳答案
ABA 似乎是 Java JCE 的洁净室实现。只需删除依赖项并使用您最喜欢的运行时中提供的提供程序
必须更新 Java 签名证书。您无法在新版本的 Java 上使用旧证书。因此,提供商的签名可能已过期。
更多信息here :
The next step is to request a code-signing certificate so that you can use it to sign your provider prior to testing. The certificate will be good for both testing and production. It will be valid for 5 years.
DES 对于大多数加密操作(可能除了创建 3 key TDES 之外)的有用性也已“过期”。
关于java - JCE 无法验证提供商 ABA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33870211/