我在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*..)
Run Code Online (Sandbox Code Playgroud)
那么问题是什么?
小智 38
1.编辑jre\lib\security\java.security
添加security.provider.10 = org.bouncycastle.jce.provider.BouncyCastleProvider
2.将bc*.jar复制到jre\lib\ext
Dun*_*nes 27
要扩展GregS的注释,必须先对所有JCE提供程序JAR进行签名,然后才能使Java运行时信任它们.
BouncyCastle尽职尽责地提供签名的JAR,它们可以毫无问题地运行.但是,如果从此JAR中提取类文件或重新编译源,它将删除签名并导致Java拒绝代码.
请参阅此相关的SO问题:如何签署自定义JCE安全提供程序
| 归档时间: |
|
| 查看次数: |
45601 次 |
| 最近记录: |