我正在使用轻量级充气城堡包,这是我的代码
X9ECParameters x9=NISTNamedCurves.getByName("p-224");
ECDomainParameters params=new ECDomainParameters(x9.getCurve(),x9.getG(),x9.getN(),x9.getH());
ECKeyGenerationParameters gp=new ECKeyGeneratorParameters(params,SecureRandom.getInstance("SHA1PRNG"));
......
此程序成功编译但生成运行时错误..
java.lang.NOClassDefFoundError:java/security/SecureRandom
...
我该如何解决?
答案 0 :(得分:2)
SecureRandom
已成为Java标准API的一部分,那么您在尝试运行代码的是什么? Google App Engine? Android的? Java ME?这些都是不支持完整Java标准API库的环境。
您必须调查您的平台是否提供了高质量随机性的不同来源。
答案 1 :(得分:0)
您可能应该使用BC包的J2ME版本。它包含它自己的java.security.SecureRandom
版本以及J2ME中没有的其他所需类。它位于latest releases页面上,只需搜索lcrypto-j2me即可在页面上找到它。