Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Алексей 111  
#1 Оставлено : 12 октября 2012 г. 14:33:54(UTC)
Алексей 111

Статус: Активный участник

Группы: Участники
Зарегистрирован: 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), т.к. файлы бывают очень большими.
Подскажите, как это сделать? Пока не нашел никакого решения...

Offline Алексей 111  
#2 Оставлено : 12 октября 2012 г. 15:21:00(UTC)
Алексей 111

Статус: Активный участник

Группы: Участники
Зарегистрирован: 26.09.2012(UTC)
Сообщений: 57
Откуда: Москва

Сказал(а) «Спасибо»: 5 раз
Поблагодарили: 1 раз в 1 постах
так что ли?

вместо

Код:
sig.update(data)


сделать

Код:
byte[] buffer = new byte[4096];
int n = 0;
while ((n = is.read(buffer)) != -1) {
	sig.update(buffer, 0, n);
}
Offline Евгений Афанасьев  
#3 Оставлено : 12 октября 2012 г. 17:19:25(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,977
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 708 раз в 669 постах
Здравствуйте.
Да, хешировать файл можно, читая его частями (при этом создавать отделенную подпись).
Offline Алексей 111  
#4 Оставлено : 12 октября 2012 г. 17:44:53(UTC)
Алексей 111

Статус: Активный участник

Группы: Участники
Зарегистрирован: 26.09.2012(UTC)
Сообщений: 57
Откуда: Москва

Сказал(а) «Спасибо»: 5 раз
Поблагодарили: 1 раз в 1 постах
ещё раз хочется уточнить: что подпись будет формироваться на весь поток данных, а не на последний его кусок?
правильно?
Offline Андрей Писарев  
#5 Оставлено : 12 октября 2012 г. 17:49:13(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,398
Мужчина
Российская Федерация

Сказал «Спасибо»: 550 раз
Поблагодарили: 2230 раз в 1739 постах
Алексей 111 написал:
ещё раз хочется уточнить: что подпись будет формироваться на весь поток данных, а не на последний его кусок?
правильно?


Правильно

Техническую поддержку оказываем тут
Наша база знаний
Offline Евгений Афанасьев  
#6 Оставлено : 12 октября 2012 г. 17:53:10(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,977
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 708 раз в 669 постах
Подпись сформируется от хеша, а его условно можно сформировать так:
Код:

while ((aByte = stream.read()) != -1 ) {
    sig.update(b);
}


Алексей 111 написал:
подпись будет формироваться на весь поток данных, а не на последний его кусок?

Да, если захешировать все данные.
Offline Алексей 111  
#7 Оставлено : 12 октября 2012 г. 18:12:48(UTC)
Алексей 111

Статус: Активный участник

Группы: Участники
Зарегистрирован: 26.09.2012(UTC)
Сообщений: 57
Откуда: Москва

Сказал(а) «Спасибо»: 5 раз
Поблагодарили: 1 раз в 1 постах
спасибо!
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.