我正在用Java创建一个基于Swing的应用程序,该应用程序使用了一些加密技术。但是javax.crypto.KeyGenerator.getInstance(“ AES”,“ BC”)给出了例外:
java.security.NoSuchProviderException: JCE cannot authenticate the provider BC at javax.crypto.SunJCE_b.a(DashoA13*..) at javax.crypto.KeyGenerator.getInstance(DashoA13*..)
那是什么问题呢?
为了扩展来自GregS的评论,必须先对所有JCE提供者JAR进行签名,然后它们才能被Java运行时所信任。
BouncyCastle会忠实地提供已签名的JAR,这些JAR可以毫无问题地工作。但是,如果从此JAR中提取类文件或重新编译源文件,它将删除签名并导致Java拒绝代码。