gpt4 book ai didi

算法 "PBE WITH MD5 AND 256 BIT AES-CBC-OPENSSL"的 java.security.NoSuchAlgorithmException

转载 作者:行者123 更新时间:2023-11-29 21:57:17 27 4
gpt4 key购买 nike

我正在使用以下代码 fragment 获取指定算法的工厂实例。但它会抛出 java.security.NoSuchAlgorithmException。我在 jre1.6 的 java 项目中使用它。

是否需要任何外部库(jar)?当我在我的 Android 应用程序中尝试使用相同的代码时,它运行良好。

try {
SecretKeyFactory factory = SecretKeyFactory.getInstance("PBEWITHMD5AND256BITAES-CBC-OPENSSL");
} catch (Exception e) {
e.printStackTrace();
}

Provider[] providers = Security.getProviders();
if (null == providers) {
System.out.println("Providers are not available.");
return;
}

for (Provider provider : providers) {
System.out.println("Provider: " + provider.getName());
Set<Provider.Service> services = provider.getServices();
for (Provider.Service service : services) {
System.out.println("\tAlgorithm: " + service.getAlgorithm());
}
}

try {
SecretKeyFactory factory = SecretKeyFactory.getInstance(providers[0].getServices().iterator().next().getAlgorithm());
if (null == factory) {
System.out.println("Getting instance of specified algorithm failed.");
} else {
System.out.println("Success.");
}
} catch (Exception e) {
e.printStackTrace();
}

以上是经过编辑的代码并抛出以下异常:

java.security.NoSuchAlgorithmException: SHA1PRNG SecretKeyFactory not available
at javax.crypto.SecretKeyFactory.<init>(DashoA13*..)
at javax.crypto.SecretKeyFactory.getInstance(DashoA13*..)

最佳答案

“PBEWITHMD5AND256BITAES-CBC-OPENSSL”Bouncy Castle 的一部分提供程序,您可能必须下载该库才能在 Java SE 上使用它。不要忘记下载 unlimited strength jurisdiction policy files也是。

至于第二个异常(exception),如果你只询问第一个提供商的第一个服务的算法,你会得到一个只对特定类型有效的算法。在这种情况下,它仅可用于 SecureRandom,而不可用于 SecretKeyFactory,如果您将 .getAlgorithm() 替换为 ,您会发现>.getType().

关于算法 "PBE WITH MD5 AND 256 BIT AES-CBC-OPENSSL"的 java.security.NoSuchAlgorithmException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12932167/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com