Spec-Zone .ru
спецификации, руководства, описания, API
|
Теперь, когда Вы создали открытый ключ и закрытый ключ, Вы готовы подписать данные. В этом примере Вы подпишете данные, содержавшиеся в файле. 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();