- Против лома нет приема!
- Если нет другого лома!
- Против лома есть прием, если сзади молотком!
(Программисты обсуждают вопросы безопасности).
Пожалуй, одна из главных проблем человечества – защита
конфиденциальной (личной) информации от посторонних глаз. На сегодняшний день
рядовому пользователю известно огромное количество программ позволяющих защитить
как отдельные документы, так и целые архивы документов. Для этого многие
используют простой архиватор с возможностью устанавливать пароли на архивы.
Например, многим известно, что во всех современных архиваторах типа WinRAR,
WinZip и др. есть опция установки пароля, но не все знают, что надёжность такой
защиты зачатую равна нулю с появлением программ распаковщиков запароленых
архивов. С помощью этих спецпрограмм злоумышленник методом перебора комбинаций
(Brute-force) может взломать ваш пароль со всеми вытекаемыми последствиями.
Поэтому использование известных программных продуктов для защиты информации
стает все более и более рискованным делом.
Неужели нет более надёжных средств защиты? Конечно, есть – самый
лучший метод защиты конечно свой. Этим мы сейчас и займёмся, а именно
разработкой собственного метода защиты HTML файлов.
Сначала выясним, что нам нужно. Для реализации поставленной
задачи нам необходимо создать два HTML файла - один для шифрования, другой для
расшифровки текста. Начнём с первого. Файл code.html будет иметь три поля ввода
(два поля <textarea> и один <input>). Первое поле <textarea> будет
использоваться для ввода содержимого HTML документа.
Поле ввода <input> - для ввода пароля, другое поле <textarea> -
для вывода зашифрованного кода. Кнопка с надписью Зашифровать используется,
соответственно, для запуска самого процесса шифрования. (рис 1.)
Рис 1. Code.html
Код первого файла code.html:
В этом файле функция code(); отвечает за шифрование информации.
Сам алгоритм очень прост, он использует символы пароля в качестве слагаемого с
символами кода HTML документа. В результате операции шифрования получается набор
чисел которые позднее превращаются в ESC последовательность типа %u20xx или
%u04хх с помощью JavaScript функции escape().
После того, как мы получили зашифрованную ESC
последовательность, нам необходимо скопировать ее в буфер обмена (ctrl+c) и
вставить (ctrl+v) в переменную code следующего файла decode.html. Для этого
лучше всего воспользоваться простым Блокнотом (Notepad).
Файл Decode.html:
После загрузки этого шифрованного HTML файла мы увидим запрос на
ввод пароля (Рис. 2). Если введенный пароль правильный, то в окно браузера
загрузится зашифрованный ранее файл, если нет тогда увидим лишь набор непонятных
символов.
Рис 2. Запрос пароля
Как вы уже, наверное, догадались, что алгоритм расшифровки файла
обратный к алгоритму шифрования. Если в первом случае мы использовали логическую
операцию сложение, то для расшифровки мы используем операцию вычитание.
Система защиты HTML файлов, рассмотренная выше, позволяет без
особых усилий защитить информацию от посторонних глаз. Возможно, у кого-то из
вас есть идея по лучше относительно вышесказанного, буду рад выслушать.