我继续使用下面的代码获取java.security.NoSuchAlgorithmException: no such algorithm: AES for provider BC
。看起来我已经包含了我需要的所有东西。
我的课程如下:
....
import org.bouncycastle.jce.provider.BouncyCastleProvider;
class ... {
static
{
Security.addProvider(new BouncyCastleProvider());
}
public CryptSession(String _algo, String _provider, String _keyAlgo, int _keySize)
throws
NoSuchAlgorithmException,
NoSuchProviderException
{
KeyGenerator generator = KeyGenerator.getInstance("AES", "BC"); // KeyGenerator.getInstance(_algo, _provider);
generator.init(256); //generator.init(_keySize);
this._algo = _algo;
this._provider = _provider;
this._keyAlgo = _keyAlgo;
this._keySize = _keySize;
this._key = generator.generateKey();
}
...
答案 0 :(得分:3)
您可以执行以下操作:
将BouncyCastle作为提供者添加到JRE / JDK $JAVA_HOME/jre/lib/security/java.security
文件
security.provider.2=org.bouncycastle.jce.provider.BouncyCastleProvider
请注意.2
它等于已添加的提供商的序列号。
或者您可以通过编程方式添加BouncyCastle,就像上面尝试的那样,但在这种情况下,安全策略$JAVA_HOME/jre/lib/security/java.policy
应该是“无限制”(您可以从Java下载无限制的策略文件)主页)。
答案 1 :(得分:0)
您需要编辑java安全策略文件add bauntycasle provider到位于jdk / bin / lib目录中的策略文件