Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Примитивная шифровка файлов, Упражнения из Страуструпа 
:(
    Опции темы
Chaos A.D.
Дата 14.2.2005, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 16.1.2005
Где: 09 RUS

Репутация: 6
Всего: 7



У Страуструпа в одной из его книг есть такое упражнение - надо написать прогу для примитивного шифрования текста. Кодом каждому символу X является X^key[pos], где key - ключ, вводимый как аргумент в коммандной строке. Программа использует циклически символы из key до тех пор, пока все не зашифровали. Так как на консоль непечатаемые символы выводить - не самая лучшая идея, у меня это упражнение шифровало файлы. Главная работа делалась таким вот кодом :

Код

for(;;)
{
in.get(c);
if ( in.eof() ) break;
out.put(c^key[pos]);
pos = ( pos < len ) ? pos+1 : 0;
}


Тут in это ifstream, а out - ofstream из <fstream>. Далее идет упражнение, которое бы дешифровывало сообщения (в моем случае, файлы), закодированные таким методом, не зная ключа. В качестве подсказки, ссылка на книгу Дэвида Кана (David Kahn) - "The Codebreakers" издательства Macmillan, 1967 год, Нью-Йорк. Страницы 207-213. Мне на ум приходит только брутфорс, с проверкой на нечитаемые символы в тексте выходного файла. Правда все-равно прийдется просматривать каждый из расшифрованных файлов, в которых не осталось этих символов. И еще один минус - дважды зашифрованный разными ключами файл не расшифруется ни разу, так как выходной файл не пройдет проверки на нечитаемые символы. Может, кто имеет в электронной или бумажной версии вышеуказанную книгу Дэвида Кана? Или у кого-нибудь есть идеи, как можно выполнить такую задачу?


--------------------
Надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума...Ken Kesey - One Flew Over The Cocoo's Nest
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0590 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.