|
|||
Скачать Кодировщик файлов CF
17.06.1994 CF - кодировщик файлов Эта программа для тех, кто любит и жаждет поломать голову над какой-нибудь задачкой. Я предлагаю программу-кодировщик, которая кодирует-раскодирует файлы с паролем. До сих пор никто не смог узнать пароль из закодированного файла, хотя они знали, где лежит пароль. Далее я опишу, как происходит закодирование и раскодирование файла. В начале файла имеется заголовок, который имеет следующую структуру: - строка 'Закодированный файл'^M^J^Z; - восемь знаков вопроса; - пять байт - закодированный пароль. Смысл кодирования пароля заключается в следующем : 1. Запрашиваем пароль любой длины. 2. Из символов пароля создаем пять последовательностей по следующим формулам (хотя возможно другое количество и качество) : a1 = a1 + n; a2 = a2 - n; a3 = a3 xor n; a4 = a4 + a1 + n; a5 = a5 + a2 + n, где a1..a5 - последовательность (это и есть закодированный пароль), n - очередной символ пароля. Для большей путаницы можно брать не только ASCII-код символа, но и скан-код (можно вообще только его). Таким образом получаем пять последовательностей, причем вероятность восстановления исходника пароля по закодированным пяти байтам невоз- можно (точнее, из одного и того же закодированного можно наштамповать множество оригиналов пароля, а если пользоваться перебором, то на это занятие может уйти полжизни (Вашей или Вашего компьютера), поскольку существует миллиарды вариантов). 3. Опять же из символов пароля создаем одну или несколько последователь- ностей, с помощью которой кодируем файл методом XOR (или подобным "реверсивным" методом, позволяющим по одному и тому же алгоритму закодировать или раскодировать данные). Для раскодирования идем следующими шагами : 1. Запрашиваем пароль для проверки. 2. Кодируем введенный пароль по тем же пяти формулам. 3. Лезем в закодированный файл и сравниваем введенный пароль с тем, который лежит в заголовке файла. Если не совпадает, либо выходим, либо идем на п.1. 4. Из введенного пароля создаем вторую последовательность, с помощью которой и приводим файл в первоначальное состояние. Приведенный выше алгоритм имеет следующие преимущества : 1. Невозможность восстановления оригинала пароля (то есть невозможно создание программы, которая бы просто говорила, с каким паролем закрыт данный файл); 2. Невозможность обмана программы кодирования-раскодирования каким-нибудь дебаггером (даже если она будет думать, что пароль правильный, она раскодирует, но неверно). Если мои доводы показались Вам убедительными, можете свободно пользоваться этим алгоритмом для своих целей (желательно с указанием моего авторства в смысле метода), а если нет, попробуйте доказать, что я слишком самоуверен и что любая защита может быть сломана. | |||
© 2009–2024 Russian Pascal Developer Network.
Техническая площадка: ISBIZ Хостинг |