Spec-Zone .ru
спецификации, руководства, описания, API
След: Средства защиты в Java SE
Урок: Генерирование и Проверка Подписей
Раздел: Генерирование Цифровой подписи
Подпишите Данные
Домашняя страница > Средства защиты в Java SE > Генерирование и Проверка Подписей

Подпишите Данные

Теперь, когда Вы создали открытый ключ и закрытый ключ, Вы готовы подписать данные. В этом примере Вы подпишете данные, содержавшиеся в файле. GenSig получает имя файла от командной строки. Цифровая подпись создается (или проверяется), использование экземпляра Signature class.

Подписание данных, генерирование цифровой подписи для тех данных, делаются со следующими шагами.

Получите Объект Подписи: следующее получает a Signature объект для генерирования или проверки подписей, используя алгоритм DSA, тот же самый алгоритм, для который программа сгенерированные ключи в предыдущем шаге, Генерирует Открытые и Закрытые ключи.

Signature dsa = Signature.getInstance("SHA1withDSA", "SUN"); 

Отметьте: определяя имя алгоритма подписи, следует также включать имя алгоритма обзора сообщения, используемого алгоритмом подписи. SHA1withDSA является способом определить алгоритм подписи DSA, используя SHA 1 алгоритм обзора сообщения.

Инициализируйте Объект Подписи

Прежде a Signature объект может использоваться для подписания или проверки, это должно быть инициализировано. Метод инициализации для того, чтобы подписаться требует закрытого ключа. Используйте закрытый ключ, помещенный в PrivateKey объект называют priv в предыдущем шаге.

dsa.initSign(priv);

Предоставьте Объект Подписи Данные, которые будут Подписаны, Эта программа будет использовать данные от файла, имя которого определяется как первое (и только) параметр командной строки. Программа считает в данных буфер за один раз и предоставит их к Signature объект, вызывая update метод.

FileInputStream fis = new FileInputStream(args[0]);
BufferedInputStream bufin = new BufferedInputStream(fis);
byte[] buffer = new byte[1024];
int len;
while ((len = bufin.read(buffer)) >= 0) {
    dsa.update(buffer, 0, len);
};
bufin.close();

Генерируйте Подпись

Как только всеми данными снабдили к Signature объект, можно генерировать цифровую подпись тех данных.

byte[] realSig = dsa.sign();

Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Генерируйте Открытые и Закрытые ключи
Следующая страница: Сохраните Подпись и Открытый ключ в Файлах