IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Вопрос с алгоритмом DES, Соединить блоки
сообщение
Сообщение #1


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Здравствуйте, есть алгоритм шифрования DES, но он шифрует максимум около 8 байт(я могу ошибаться), т.е. бОльшие файлы игнорируются. Насколько я понимаю, нужно составить цепочку из 8-байтных блоков.Возможно,я что-то не так понял? Модуль c примером его использования прилагается.


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 7)
сообщение
Сообщение #2


Гость






Цитата
но он шифрует максимум около 8 байт
Вообще-то DES шифрует информацию 64 битовыми блоками, так что не "максимум", а именно 8 байт...

Цитата
Насколько я понимаю, нужно составить цепочку из 8-байтных блоков
Угу... Читать файл порциями, кратными 8 байтам, что присоединенная программа и делает... Только вот по-моему, у нее есть небольшой недостаток: она будет увеличивать размер файла до размера кратного 8 (если в исходном файле было 53 байта, то после дешифрации станет 56, причем 3 конечных - мусор). Проверить сейчас не могу - TP недоступен, но выглядит программа USE-DES работоспособной... Или она работает некорректно? Тогда расскажи, в чем именно заключается неправильная работа...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


USE-DES вполне работоспособна, мне удавалось зашифровать небольшой txt файл.


Сообщение отредактировано: Unconnected -


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Проблема в том, что при шифровании "больших" файлов(350 кб например) получаются файлы размером 4 кб.


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Угу... проблема - вот тут:
Цитата
  n:=FileSize(f); { <--- описано как Word, но Word не может хранить размеры больше 64К }
k:=n div Rec; if n mod Rec<>0 then inc(k);
Переделай вот так:

var
f_size: longint;
{
k и i я бы тоже сделал longint-ами, а то мало ли, захочешь
зашифровать файл размером больше 65535*512байт = 32Мб,
опять будет проблема
}

...
f_size := FileSize(f);
k:=f_size div Rec; if f_size mod Rec<>0 then inc(k);
...


Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Получается, у тебя f_size вместо переменной n? Теперь возникает ошибка 98, F_size должна иметь целочисленный тип.
А если её сделать integer, то такая же песня с 4-мя килобайтами получается(

Сообщение отредактировано: Unconnected -


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Я где-то написал, что вместо? Покажи, где... Я добавил переменную, которая должна выполнять свою функцию: хранить размер файла... Что там у тебя делает N - это другие проблемы, f_size это не касается никаким боком.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Volvo, огромное спасибо. Как репутацию повышать?


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 2.12.2021 1:28
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name