С помощью программы можно скрывать информацию в текстовых файлах, типа txt. При этом, при просмотре файлов, его содержимое зрительно не изменяется. Файлы типа txt содержат ASCII коды алфавитно-цифровых символов и некоторых других символов. К неотображаемым символам можно отнести следующие: • пробел – 0х20 • табуляция – 0х09 • переход на следующую строку – 0х0A 0х0D.
Эти неотображаемые символы и будут использоваться при кодировании. Кодирование осуществляется следующим образом: исходный байт данных, который необходимо закодировать (З), разбивается на 8 бит, а затем в цикле считывается из текстового файла по 1 байту данных (Т), до тех пор, пока не встретиться символ с ASCII кодом 0x20, 0x09 или 0x0A, за которым сразу будет следовать символ 0x0D. Допустим количество считанных пробелов (П) представляет собой чётное число, а текущий бит, который необходимо закодировать, равен 1. Тогда количество пробелов (П) увеличиваем на единицу, чтобы оно стало нечётным. Если бы (П) было нечётным, то его оставляем без изменения. Затем считываем очерёдной байт (T) из текстового файла, пока не встретим очередной символ пробела, табуляции или перехода на новую строку и проверяем их количество на чётность. И так далее пока не закодируются все 8 бит байта (З). Затем считываем очередной байт (З) из файла, который необходимо закодировать. При декодировании также проверяется чётность пробелов, и на основании этой информации формируются байты данных закодированного файла. Кроме основной информации, находящейся в файле, который необходимо закодировать, в текстовый файл заносится также дополнительная информация. В частности – размер текстовых данных, которые вставляются в файл. Среда разработки: Microsoft Visual C++

|