0

嗨,我正在开发一个带有 sdk 版本 8 到 17 的 android 4.2.2,我需要使用私钥,所以当我要生成这个密钥时,我使用以下代码:

Provider p = Security.getProvider("SunEC");
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("EC",p);

但是 p 为空。

当我在 java 项目中运行时,相同的代码有效,但在 android 项目中无效

我需要在项目中设置一个库吗?或任何其他的东西?

谢谢

4

2 回答 2

0

您似乎在 Android 上使用了无效的安全提供程序。

请参阅:Android 支持哪些加密算法?

于 2013-10-28T18:01:10.057 回答
0

嗨,我已经解决了这个问题,

正如@Morrison Chang 指出的那样,我使用的提供程序在 Android 上尚不支持。

sun 提供程序是今年在 jdk 1.7 发布的,但是 Android 系统仍然是 1.6。

我尝试使用 Bouncy Castle 提供程序,它在没有移动系统的情况下运行良好。但是他们有一个运行良好的移动系统版本

海绵城堡。 http://rtyley.github.io/spongycastle/

谢谢你们!

于 2013-11-03T14:12:16.353 回答