Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.09.2012(UTC) Сообщений: 57 Откуда: Москва
Сказал(а) «Спасибо»: 5 раз Поблагодарили: 1 раз в 1 постах
|
Добрый день! Сейчас, чтобы подписать файл я использую функцию из jcp-samples: Код:public static byte[] sign(String alghorithmName, PrivateKey privateKey,
byte[] data) throws Exception {
final Signature sig = Signature.getInstance(alghorithmName);
sig.initSign(privateKey);
sig.update(data);
return sig.sign();
}
Но хотелось бы её переделать, чтобы она могла работать с входным потоком данных (InputStream), т.к. файлы бывают очень большими. Подскажите, как это сделать? Пока не нашел никакого решения...
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.09.2012(UTC) Сообщений: 57 Откуда: Москва
Сказал(а) «Спасибо»: 5 раз Поблагодарили: 1 раз в 1 постах
|
так что ли? вместо сделать Код:byte[] buffer = new byte[4096];
int n = 0;
while ((n = is.read(buffer)) != -1) {
sig.update(buffer, 0, n);
}
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,977 Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 708 раз в 669 постах
|
Здравствуйте. Да, хешировать файл можно, читая его частями (при этом создавать отделенную подпись). |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.09.2012(UTC) Сообщений: 57 Откуда: Москва
Сказал(а) «Спасибо»: 5 раз Поблагодарили: 1 раз в 1 постах
|
ещё раз хочется уточнить: что подпись будет формироваться на весь поток данных, а не на последний его кусок? правильно?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,398 Сказал «Спасибо»: 550 раз Поблагодарили: 2230 раз в 1739 постах
|
Алексей 111 написал:ещё раз хочется уточнить: что подпись будет формироваться на весь поток данных, а не на последний его кусок? правильно? Правильно |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,977 Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 708 раз в 669 постах
|
Подпись сформируется от хеша, а его условно можно сформировать так: Код:
while ((aByte = stream.read()) != -1 ) {
sig.update(b);
}
Алексей 111 написал:подпись будет формироваться на весь поток данных, а не на последний его кусок? Да, если захешировать все данные. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.09.2012(UTC) Сообщений: 57 Откуда: Москва
Сказал(а) «Спасибо»: 5 раз Поблагодарили: 1 раз в 1 постах
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close