NoSuchAlgorithmException PBEWITHSHA256AND128BITAES

时间:2014-07-04 16:22:43

标签: java encryption bouncycastle

我正在开发一个Java跨平台客户端应用程序,它将使用Bouncy Castle API加密的PBEWITHSHA256AND128BITAES-CBC-BC将敏感信息存储在本地文件中。

以下代码:

public static void main(String[] args) throws NoSuchAlgorithmException {
    Security.addProvider(new BouncyCastleProvider());

    for (Provider provider : Security.getProviders()) {
        for (Provider.Service service : provider.getServices()) {
            System.out.println(provider.getName() + ": " + service.getAlgorithm());
        }
    }

    SecretKeyFactory.getInstance("PBEWITHSHA256AND128BITAES-CBC-BC");
}

给了我以下例外:

SUN: NativePRNG
SUN: SHA1PRNG
SUN: SHA1withDSA
[...]
BC: PBEWITHSHAAND192BITAES-CBC-BC
BC: PBEWITHSHAAND256BITAES-CBC-BC
BC: PBEWITHSHA256AND128BITAES-CBC-BC
BC: PBEWITHSHA256AND192BITAES-CBC-BC
BC: PBEWITHSHA256AND256BITAES-CBC-BC
BC: DESMAC
[...]
Exception in thread "main" java.security.NoSuchAlgorithmException: PBEWITHSHA256AND128BITAES-CBC-BC SecretKeyFactory not available
    at javax.crypto.SecretKeyFactory.<init>(DashoA13*..)
    at javax.crypto.SecretKeyFactory.getInstance(DashoA13*..)
    at TestBouncyCastle.main(TestBouncyCastle.java:47)

这很奇怪,因为PBEWITHSHA256AND128BITAES-CBC-BC被列为可用服务。

在Bouncy Castle维基上,有note

  

注意:要充分利用必须安装的提供程序   您正在使用的JVM中的无限制策略文件 - 这些可以是   从http://java.sun.com下载。

如果我理解正确,我需要在客户端JRE中安装一个文件。我想避免在应用程序中提供JRE。有办法吗?

谢谢!

0 个答案:

没有答案