Общее заявление об ошибке возврата SecureRandom - Java - PullRequest
0 голосов
/ 09 марта 2011

Я искал на разных форумах, и теперь я, наконец, задаю свой вопрос, так как не могу найти конкретный ответ.

Я пишу протокол безопасности для датчиков SunSPOT как мой последний год проекта.

Я хочу сгенерировать 128-битный ключ, который позже можно будет хэшировать. В результате поиска в Интернете я обнаружил, что лучшим способом для генерации случайных ключей является SecureRandom.

Я пытаюсь реализовать общее утверждение, чтобы увидеть, как оно работает, чтобы я мог использовать его дальше в соответствии с моим требованием

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

выше оценки, которую я использовал с "SHA1PRNG", "MD5ECDSA" и "ECDSAWithSHA1Signature" как только я заполняю заявление и ставлю точку с запятой, оно возвращает эту ошибку

метод getInstance в классе com.sun.spot.security.implementation.SecureRandom не может применяться к данным типам
обязательно: найден байт: java.lang.String

Я добавил файл Jar соответственно в build.xml и в build.properties; также импортировал алгоритм в программу.

Спасибо за чтение

и любая помощь очень ценится

Спасибо всем, кто пытался помочь.

Хэш (Hasnain)

Ответы [ 5 ]

2 голосов
/ 09 марта 2011

Почему бы просто не сказать «SecureRandom ()» и позволить системе выбрать алгоритм?Вот явный пример:

import java.security.SecureRandom;

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

}
1 голос
/ 09 марта 2011

Вы используете правильный класс? Вы должны использовать java.security.SecureRandom . Кроме того, SHA1WITHECDSA, MD5ECDSA и ECDSAWithSHA1Signature являются бессмысленными в качестве экземпляров SecureRandom.

0 голосов
/ 11 марта 2011

Экземпляр, необходимый для безопасного случайного выбора в Java-приложении SunSPOT, выглядит следующим образом:

SecureRandom gen;gen = SecureRandom.getInstance (SecureRandom.ALG_SECURE_RANDOM);

Я хотел бы поблагодарить всех, кто приложил свои усилия для устранения этой ошибки.

Еще раз спасибо.

0 голосов
/ 09 марта 2011

Ошибка относится к классу com.sun.spot.security.implementation.SecureRandom. Вероятно, вы должны использовать java.security.SecureRandom (именно этот класс имеет метод getInstance, который принимает строку).

Возможно, вы неправильно указали оператор импорта.

0 голосов
/ 09 марта 2011

Звучит так, будто вы вызываете метод, для которого в качестве аргумента требуется byte, но вы предоставляете String.

...