Декодировщики
Начинающим криптографам

В предельно чётком и стандартизованном мире компьютеров и всего, что с ними связано, если вдуматься, сложилась немного парадоксальная ситуация. Да, стандартизовано практически всё, что только возможно, но самих этих стандартов на каждую мелочь так много, что нетрудно попасть впросак даже с самыми главными компонентами ПК, пытаясь, например, «воткнуть» свежераспакованный третий «пень» в Socket370 вместо устаревшего «Селерона» или память SDRAM в разъёмы SIMM. Производителям железа всё сложнее договориться о единых спецификациях на новое оборудование — достаточно вспомнить, насколько оказалось из-за этого задержанным повсеместное внедрение DVD — в результате даже сегодня такой привод не так часто встретишь. Не наблюдается просвета и в программном обеспечении. Запустил новую игру, а оказалось, что она способна продемонстрировать все свои трёхмерные достоинства только на видеокартах от 3DFX, и надо «качать» из Интернета патч, чтобы поиграть в неё на TNT. Новая программа не может интегрироваться с Internet Explorer 5, надо с ней работать — попробуй вернуться к четвёртому «Эксплореру», если готов ради этого «снести» целиком Windows 98SE. В идеале, хотелось бы, чтобы таких проблем было как можно меньше, и простой «чайник» не морщил лоб в попытках понять, почему что-то не работает или не запускается, а программы и «железо» были полностью совместимы не только друг с другом, но и с разными операционными системами. И, несмотря на то, что богатством выбора операционок похвастаться абсолютно нельзя, и нам хотелось бы иметь гораздо больше альтернатив «форточкам», немногочисленные создатели ОС не сделали (да и не смогли бы сделать) так, чтобы, например, программы для Windows работали хотя бы под набирающим популярность Linux в чём-то типа виртуальной машины (что-то похожее, кстати, уже есть, но на неофициальном уровне). Помечтать не вредно, скажете вы, с монополией на перспективную технологию никто по доброй воле не расстанется и с конкурентом своей документацией и исходными кодами не поделится. Безусловно, всё объясняется не только тем, что мы находимся только на заре развития информационных технологий, и стандарты, не успев родиться, тут же устаревают, оставляя, тем не менее, нам в наследство в качестве своего праха необходимость их поддержки в будущих продуктах. Во многом виноваты и разработчики, желающие сегодня же урвать кусок пожирнее от большого пирога научно-технической революции и не думающие об исторической целесообразности своих разработок. Кто-то не хочет открыть код своей операционной системы, даже если б это ничего, кроме пользы для компьютерного сообщества, не принесло, кто-то изобретает велосипед, продвигая свой собственный стандарт, лишь бы не использовать спецификации конкурента, кто-то патентует кучу разных слотов под почти одинаковые процессоры только для того, чтобы пользователи тратили больше денег на апгрейд компьютеров, меняя материнскую плату вместе с новым процессором. Возможно, всё это было бы не так и важно: рынок — закон джунглей, ничего не поделаешь, но сталкиваться с совершенно излишним многообразием стандартов приходится почти каждый день в самых разных мелочах. Очень неудобно постоянно преодолевать какие-то неудобства, нами же и порождённые.

Купили вы, например, новый компакт-диск с очень нужной программой и, засунув его с чувством глубокого удовлетворения в привод CD-ROM, первым же делом находите файл READ.ME, давите левую кнопку мыши и читаете… Нет, ничего не читаете, потому что в «Блокноте» вместо русских букв сплошные крякозябры. Текст оказался в DOS-кодировке… Можно, конечно его и не читать, но вдруг там написано, что программу надо устанавливать только в корень диска С:\, а при инсталляции в другое место она ни за что не заработает? Приходится, забыв про все продвинутые технологии Windows, запускать старый добрый «Нортон», жать заветную «F3» и ломать глаза от шестидесяти герц полноэкранной DOS-сессии. Хорошо, если надо прочесть 10 строк READ.ME, а если вы закачали из Интернета полмегабайта «Нейромантика» Уильяма Гибсона? К концу книги придётся очки заказывать. А всё из-за того, что компания Microsoft пошла своим путём при создании Windows и придумала собственную кодировку, называемую в просторечии Win-1251, не позаботившись, как обычно, о конечном пользователе, которому, понимаешь, нужна поддержка Блокнотом ещё и «ДОСовской» кодовой страницы 866, созданной, кстати, самим же Microsoft. В результате «на ровном месте» возникла ещё одна проблема для неискушённого пользователя.

Но это ещё не самый худший случай! Из-за доставшихся нам от разных UNIX’ов, DOS’ов, Макинтошей кодировок, русскоязычные завсегдатаи Интернета постоянно сталкиваются при серфинге по Сети с непонятными иероглифами вместо русских букв на многих страницах Рунета. И если в последних версиях наиболее популярных броузеров достаточно легко переключить кодовую страницу с помощью меню «Вид» — «Кодировка», расшифровав, таким образом, весь текст на сайте, то письма, прошедшие через несколько почтовых серверов, созданных на разных операционных системах, и похожие больше на пляшущих человечков Конан-Дойля, прочитать порой могут только в ФСБ. Чтобы из-за непонятных манипуляций с почтовыми сообщениями по пути их следования до адресата не изучать криптографию, приходится опять «навешивать» на систему дополнительные утилиты-перекодировщики, способные восстанавливать исходный текст даже после многократных его искажений почтовыми серверами, которые, видимо, всё-таки, запрограммированы делать как лучше, а получается…

Программ, предназначенных для перекодировки текстов, на рынке достаточно много, найти их легко среди коллекций софта на сайтах типа download.ru [1], практически все они отечественного происхождения и почти полностью удовлетворяют любые потребности пользователей, но различия в функциональности и специализации всё-таки имеются. Чтобы каждый смог выбрать среди всего многообразия этих хороших программ то, что нужно именно ему, я попытался потестировать несколько самых популярных программ-перекодировщиков. Некоторые из них являются полноценными текстовыми редакторами, другие разработаны исключительно для быстрого перекодирования целых пакетов файлов, но все их объединяет одно: они дают нам то, что разработчики самой популярной операционной системы, забыв о конечном пользователе, не пожелали учесть при её разработке — совместимость со всеми текстовыми стандартами.

TPZ Recoder [2]

Recoder очень пригодится веб-дизайнерам, которые иногда вынуждены создавать несколько вариантов одних и тех же HTML-документов в разных кодировках. Он служит только для изменения кодировки исходных файлов и теоретически не предназначен для расшифровки вашей почты. Эта небольшая узкоспециализированная программа выполнит одновременное перекодирование группы файлов в любую из кодировок WIN, DOS, KOI, ISO, MAC, LAT, или даже во все сразу, создав для каждого варианта свою папку с соответствующим названием. В работе предельно проста и удобна. Единственный её недостаток заключается в необходимости знать исходную кодировку файла, но если его создали вы же сами, то это, разумеется, не составит никаких проблем.

В качестве конкурента можно посмотреть, например, программу «Перекодировка Кириллицы» [3], которая чуть менее удобна в работе из-за того, что перекодирует за раз только в один вариант текстового стандарта и, вместо помещения полученного файла в новую папку, просто заменяет старый, сохраняя, правда, его резервную копию. Поэтому, хотя она и «понимает» ещё и формат «Unicode», для разработчиков сайтов подходит, всё-таки, меньше, она, скорее, ориентирована на единичное, неожиданно потребовавшееся перекодирование, чем на постоянную работу с кодировками.

Tcode [4]

Эта утилита предназначена уже для автоматического или ручного декодирования «убитых» почтовых сообщений и новостей из UseNet. При восстановлении поддерживаются кодировки Dos, Windows, KOI-8, ISO 8859-5 и их комбинации, а также преобразования текста из форматов Base64, Quoted-Printable, HTML и UTF-8. По утверждениям автора, отличительная особенность программы — использование быстрого эвристического алгоритма распознавания русских слов, в результате чего TCODE должен превосходить по скорости и точности другие подобные программы. С программой максимально удобно работать, используя буфер обмена при чтении электронных писем и новостных телеконференций, достаточно кликнуть мышкой на значок TCODE в системной области панели задач. С простыми случаями порчи текстов программа вполне справляется, однако с текстом вида ï&icirc, полученном при сохранениии HTML-странички с ошибочным параметром CHARSET, и с очень сложным вариантом специально неверно перекодированного раза три файла она не разобралась. Не работает она и с транслитерацией — русскими словами, написанными латиницей. Возможно, в будущих версиях её функции будут расширены, пока же она подойдёт, скорее, для неискушённого пользователя благодаря своей простоте и скорости работы.

SHTIRLITZ [1]

«Штирлиц» вполне оправдывает своё название благодаря очень мощному механизму расшифровки испорченных текстов. Количество поддерживаемых кодировок (вам встречалась кодовая страница 855?) и схем транслитерации просто огромно, причём легко добавить ещё и свою собственную схему кодирования. Можно сделать читаемыми даже тексты, в которых встречаются несколько кодировок в одном файле, HTML-файлы, при создании которых был неправильно указан charset (ï&icirc), тексты, написанные нестандартной транслитерацией или набранные в неверной раскладке клавиатуры. «Штирлиц», в отличие от большинства аналогов, восстанавливает русский текст, состоящий из выдуманных слов, что говорит об оригинальности механизма распознавания кодировки. Тексты почтовых сообщений, закодированные с помощью uuencoding, xxencoding, base64 и binhex принимают свой нормальный вид автоматически и за доли секунды. Режим пакетного декодирования, правда, не настолько удобен, как в программе TPZ Recoder, так как единовременно возможно перекодирование только в один стандарт, но зато блестяще реализована настраиваемость программы — не каждый пользователь сразу разберётся во всех режимах и функциях. К счастью, установки, принятые в программе по умолчанию, вполне достаточны для подавляющего большинства случаев, поэтому трудностей в работе с ней ни у кого не возникнет — автоматическая работа «Штирлица» и активное использование буфера обмена предельно облегчают восстановление текстов и электронных писем. А когда пользователь немного поближе ознакомится с инструкцией и многочисленными примерами, то подстроит программу уже именно под свои, чаще всего встречающиеся схемы распознавания.

При инсталляции «Штирлица» в контекстное меню текстовых файлов добавится очень удобная команда «Открыть Штирлицем», жаль только, что нельзя выбирать в опциях другие типы файлов, к которым надо добавить эту команду. Есть полезная функция преобразования HTML-документа в текстовый файл. Иногда, правда встречаются досадные упущения, например, пакетное перекодирование не работает с транслитом, сами файлы с текстом, записанным латиницей, не всегда переводятся в нормальный вид, да и дизайн интерфейса программы несколько устарел, особенно удивляет огромная кнопка на одном из самых видных мест Панели Инструментов, случайное нажатие которой приводит к деинсталляции «Штирлица». Но в целом это одна из самых мощных программ, справившаяся почти со всеми самыми сложными тестовыми файлами.

Hieroglif [5]

«Иероглиф» — самая большая программа обзора, она является абсолютно полноценным текстовым редактором, поддерживающим даже проверку орфографии. Если вы будете набирать в нём тексты, то отучитесь выбирать раскладку клавиатуры при переходе от русских слов к английским — Иероглиф сделает это за вас автоматически. При настройке этой программы уже можно самому задать, к каким типам файлов добавится в контекстное меню команда «Открыть Иероглифом», что избавляет рядовых пользователей от возможных ошибок использования стандартного «виндового» средства настройки файловых ассоциаций — меню «Свойства Папок».

Поддерживаются все стандартные схемы кодировки, транслитерация возможна в обе стороны, что у конкурентов встречается довольно редко, причём при восстановлении русского текста из латиницы имеется интерактивный режим, при котором практически исключены ошибки восстановления из нестандартных схем транслита. Очень много и других, очень нужных функций, делающих эту программу самой мощной среди протестированных: преобразование HTML-документа в текст, очистка текста после OCR-распознавания, сортировка строк списков по алфавиту, автоопределитель языка, переформатирование текстов и абзацев — всё это позволяет максимально удобно работать с текстами, исправляя в них самые разные ошибки.

Панель инструментов «Иероглифа» предоставляет и практически все стандартные средства для полноценной работы с текстами — от выбора шрифта до его цвета и поиска текста, ни в чём не уступая «виндовому» WordPad (ещё чуть-чуть, и получился бы Word :)). Почти любую функцию можно вызвать прямо с Панели Инструментов, нажав только одну кнопку. К сожалению, на тестовом, сверх меры «запоротом» файле, «Иероглиф» себя никак не проявил, и ни одного слова из него не воспринял, выдав сплошные квадратики вместо букв. Не смог он прочитать и HTML-файл, сохранённый с неверным charset, который был легко до этого расшифрован «Штирлицем», да и многие файлы примеров, поставляемых со «Штирлицем», «Иероглиф» преобразовать в читаемый вид не смог. Раскодирование почтовых сообщений не автоматизировано, что явно вызовет затруднения у пользователя, даже если он не «чайник». В остальном же, это одна из лучших, если не лучшая, благодаря сумме всех своих возможностей и «продвинутому», современному интерфейсу, программа на рынке, причём бесплатная, что встречается уже всё реже и реже. Иероглиф, пожалуй, скорее, хороший текстовый редактор с функциями перекодировщика, чем специализированный декодер текстов.

Etype Mail Decoder [6]

Специализация программы — расшифровка почтовых сообщений, сохранённых на диске с помощью Outlook Express, например, и с этим она справляется лучше «Иероглифа», но для декодирования приходится нажимать как минимум четыре кнопки, так как автоматического восстановления текста прямо при открытии файла, как в других программах, не предусмотрено. Интерфейс программы — просто образец минимализма — операции с буфером, открытие и сохранение файла, выбор ручного или автоматического декодирования. Процесс самого декодирования, кажется, занимает несколько больше времени, чем у конкурентов. И хотя радует самый полный набор поддерживаемых форматов, но, тем не менее, несколько запутанных последовательностей «издевательств» над исходным файлом, ставит Etype Mail Decoder в тупик. В общем, простая программа с достаточной мощностью для чтения вашей почты, которую могут установить себе те, кто хочет быть уверен, что, в случае чего, сумеет быстро прочитать важное сообщение. Если же ваш почтовый ящик каждый день «пухнет» от писем, то подберите что-нибудь более автоматизированное.

Конкуренты

Что ещё можно попробовать кроме рассмотренных программ? Достойных программ много, и, хотя они практически аналогичны по своим возможностям и назначению, у каждой есть свои «изюминки», описать которые в небольшой и субъективной журнальной статье невозможно. Посмотрите сами, может быть, вам больше понравится SNK Decoder [7] или Реаниматор [8], на сайте download.ru [1] рубрика перекодировщиков содержит не один десяток утилит, среди которых каждый найдёт именно то, что нужно для его работы. А что касается меня… Вот если бы объединить скорость «Блокнота», интерфейс и функциональность «Иероглифа», интеллект и мощь «Штирлица»…

Информация к размышлению…

ALT (Ms-Dos 866)
альтернативная кодировка DOS (кодовая страница 866), разработка Microsoft и IBM, применяется в операционных системах MS-DOS, PC-DOS, DR-DOS, OS/2 и в FidoNet. Примерный вид в «Блокноте»:
⥪бв ў бҐи ­­®© Є®¤Ёа®ўЄҐ.
КОИ-8 (она же KOI8-R)
код обмена информацией восьмибитный, разработан в советских НИИ, используется во многих клонах ОС UNIX, таких как Linux и FreeBSD; сообщения электронной почты, пересылаемые по Интернету, также используют эту кодировку. Примерный вид в «Блокноте»:
рЕТЕД ЪБЗТХЪЛПК ХВЕДЙФЕУШ
Macintosh 10007 — MAC
русская кодировка на компьютерах Macintosh с операционной системой MacOS. Примерный вид в «Блокноте»:
„лЯ его прочтениЯ
ISO 8859-5
русская кодировка в UNIX-системах, разработка International Standards Organization, используется в основном, операционной системой Sun Solaris, работающей на компьютерах SUN. Примерный вид в «Блокноте»:
вХЪбв Т бЬХиРЭЭЮЩ ЪЮФШаЮТЪХ
Windows-1251
Microsoft code page 1252 — детище всемирно любимой фирмы, используется в Windows9x, WindowsNT, одна из самых распространённых в Интернете.
Latinica, Translit, TRANS
транслитерация, запись русских слов латинскими буквами: Vsem privet!. Используется в системах, не поддерживающих кириллицу в принципе.
Unicode
16-битная кодировка, каждый символ представлен двумя байтами — возможно, самая перспективная и удачная кодировка с точки зрения совместимости, но используется редко. Включает в себя 65536 знаков, а не 256, как обычные.
Quoted printable
Семибитная вида =C2=EE=F2 =EE=ED=E0
используется при кодировании русских символов в почтовых сообщениях формата MIME.
Семибитная вида %C2%EE%F2 %EE%ED%E0
также используется при кодировании русских символов в сообщениях электронной почты.
Семибитная вида \'c2\'ee\'f2 \'ee\'ed\'e0
кодирование русских букв в файлах формата RTF.
Семибитная вида Уваж
фактически, это кодировка Unicode. Все «нелатинские» символы представлены в виде &#xxxx;, где xxxx — код символа в кодировке Unicode. Применяется некоторыми почтовыми программами.
UTF8
кодировка, применяемая для создания текста на нескольких языках. В почтовой программе Outlook Express она называется Unicode, что не совсем верно. Выглядит она приблизительно так: неверно.
UTF7
также для создания текста на нескольких языках. Примерный вид: +BD8EQAQ+BDMEQAQwBD.
Base64
популярная семибитная почтовая кодировка: ojZGVmaW5lIF9fQ09ORklHX0gN
BinHex 4.0
кодировка для пересылки файлов через Сеть, используемая в компьютерах Macintosh:
(This file must be converted with BinHex 4.0)
: #Nl$3S0#L0PEQ4TCJd+$3S[,b
Uuencode / Uudecode
кодировка для пересылки по почте двоичных файлов:
begin 644 config.h
1U](#0HC9&5F:6YE(%]?0T].1DE'7T



Темы