0

我已经在不同的论坛中进行了搜索,现在我终于提出了我的问题,因为我找不到具体的答案。

我正在为 SunSPOT Sensors 编写安全协议作为我最后一年的项目。

我希望生成一个 128 位密钥,稍后可以对其进行散列,通过我在网络上的搜索,我发现生成随机密钥的最佳方法是 SecureRandom。

我正在尝试执行一般性声明以查看它是如何工作的,以便我可以根据我的要求进一步使用它

SecureRandom gen = SecureRandom.getInstance("SHA1WITHECDSA");

上面的语句我用“SHA1PRNG”、“MD5ECDSA”和“ECDSAWithSHA1Signature”,只要我完成语句并加上分号就返回这个错误

com.sun.spot.security.implementation.SecureRandom 类中的方法 getInstance 不能应用于
所需的给定类型:找到字节:java.lang.String

我已将 Jar 文件分别添加到 build.xml 和 build.properties 中;还将算法导入程序。

谢谢阅读

并且非常感谢任何帮助

谢谢每一位试图提供帮助的人。

哈希 (Hasnain)

4

5 回答 5

2

为什么不直接说“SecureRandom()”让系统选择算法呢?这是一个明确的例子:

import java.security.SecureRandom;

public class Rando {
    public static void main(String[] args) {
        System.out.println(new SecureRandom().nextFloat());
    }

}
于 2011-03-08T23:06:21.720 回答
1

你使用正确的类吗?您应该使用java.security.SecureRandom。此外,SHA1WITHECDSA,MD5ECDSAECDSAWithSHA1Signature作为 SecureRandom 实例是无意义的。

于 2011-03-09T00:26:32.647 回答
0

错误是指类com.sun.spot.security.implementation.SecureRandom。您可能应该正在使用java.security.SecureRandom(正是此类具有getInstance采用字符串的方法)。

您可能有一个不正确的导入语句。

于 2011-03-09T00:30:34.877 回答
0

听起来好像您正在调用一个需要byteas 参数的方法,但您提供的是String.

于 2011-03-08T23:02:14.977 回答
0

SunSPOT java应用程序中安全随机所需的实例如下

安全随机生成;gen = SecureRandom.getInstance(SecureRandom.ALG_SECURE_RANDOM);

我要感谢所有努力解决此错误的人。

再次感谢。

于 2011-03-10T22:27:45.473 回答