Шифрование в Delphi |
||||
---|---|---|---|---|
Данные надо беречь. Сами посудите, обидно, если открытие ценой в сто миллионов долларов или рецепт безалкогольной водки, над которым вы корпели три вечера в мрачном подвале нелегального компьютерного клуба, - уплывет к злостному ленивому конкуренту, который, пользуясь вашим похмельем, наложил грязную лапу на приватные дискеты с ценнейшей инфой?! Дальше можно не продолжать. Шифруем, шифруем, шифруем!.. Добрый дядюшка Borland предоставил нам несколько занятных функций для работы со строками, о которых не все знают. Сосредоточены они в модуле StrUtils.pas. Такие функции, как RightStr, LeftStr совмещают известные нам стандартные команды Copy и Delete: так, LeftStr возвращает значение левой части строки до указанной вами позиции (что вытворяет RightStr, догадайтесь сами), а функция ReverseString и вовсе делает зеркальное отображение данной строки: 321 вместо 123. Используем ее в особенности, чтобы осложнить жизнь хитрому дешифровщику. Алгоритм шифрования будет прост, как Win 3.1: с помощью команды Ord получим числовой код данного символа. НО! Для дешифровки нужен пароль, который (я надеюсь) будете знать только вы. Каждый символ пароля будет декодирован в числовое значение, и алгебраическая сумма всех этих чисел будет прибавлена к имеющемуся значению зашифрованного знака в тексте. И так - для каждой буквы шифруемого документа, между которыми добавятся пробелы, иначе декодер примет множество символов, записанных в цифровом виде, за одно большое многозначное число и ничего не переведет. А затем результат будет записан навыворот командой ReverseString. Когда же настанет пора декодировать информацию, обработанные "чистые" цифровые значения переведутся в символьные командой Chr. Без пароля такой цикл взломать достаточно сложно, даже зная алгоритм, если только вы не гуру криптографии или титан алгебры (я-то надеюсь, что вы, конечно же, усовершенствуете мое скромное творение: это - лишь заготовка). Единственный значительный недостаток - размер зашифрованного файла
увеличивается по сравнению с исходным в 3 раза. Но для того и архиваторы
придумали :).
- закодируем File.txt. Результат (зашифрованный текст) сохраниться в той же
директории, что и исполняемый файл нашего приложения под именем
Translated_File.txt.
Вот, собственно, и всё. В заключение процитирую отрывок из статьи
"Криптография в C + +" в номере 3.03 журнала "Хакер": //Отредакции журнала "В помощь Веб-Мастеру" |