没有这样的算法:AES供应商BC

时间:2014-05-06 09:54:01

标签: java encryption bouncycastle

我继续使用下面的代码获取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();
}
...

2 个答案:

答案 0 :(得分:3)

您可以执行以下操作:

  1. 将BouncyCastle作为提供者添加到JRE / JDK $JAVA_HOME/jre/lib/security/java.security文件

      

    security.provider.2=org.bouncycastle.jce.provider.BouncyCastleProvider
      请注意.2它等于已添加的提供商的序列号。

  2. 或者您可以通过编程方式添加BouncyCastle,就像上面尝试的那样,但在这种情况下,安全策略$JAVA_HOME/jre/lib/security/java.policy应该是“无限制”(您可以从Java下载无限制的策略文件)主页)。

答案 1 :(得分:0)

您需要编辑java安全策略文件add bauntycasle provider到位于jdk / bin / lib目录中的策略文件