Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Примитивная шифровка файлов


Автор: Chaos A.D. 14.2.2005, 21:19
У Страуструпа в одной из его книг есть такое упражнение - надо написать прогу для примитивного шифрования текста. Кодом каждому символу 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. Мне на ум приходит только брутфорс, с проверкой на нечитаемые символы в тексте выходного файла. Правда все-равно прийдется просматривать каждый из расшифрованных файлов, в которых не осталось этих символов. И еще один минус - дважды зашифрованный разными ключами файл не расшифруется ни разу, так как выходной файл не пройдет проверки на нечитаемые символы. Может, кто имеет в электронной или бумажной версии вышеуказанную книгу Дэвида Кана? Или у кого-нибудь есть идеи, как можно выполнить такую задачу?


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)