Что делать, если вместо текста иероглифы (в Word, браузере или текстовом документе)
Доброго дня.
Наверное, каждый пользователь ПК сталкивался с подобной проблемой: открываешь интернет-страничку или документ Microsoft Word — а вместо текста видишь иероглифы (различные «крякозабры», незнакомые буквы, цифры и т.д. (как на картинке слева…)).
Хорошо, если вам этот документ (с иероглифами) не особо важен, а если нужно обязательно его прочитать?! Довольно часто подобные вопросы и просьбы помочь с открытием подобных текстов задают и мне. В этой небольшой статье я хочу рассмотреть самые популярные причины появления иероглифов (разумеется, и устранить их).
Иероглифы в текстовых файлах (.txt)
Самая популярная проблема. Дело в том, что текстовый файл (обычно в формате txt, но так же ими являются форматы: php, css, info и т.д.) может быть сохранен в различных кодировках .
Кодировка — это набор символов, необходимый для того, чтобы полностью обеспечить написание текста на определенном алфавите (в том числе цифры и специальные знаки). Более подробно об этом здесь: https://ru.wikipedia.org/wiki/Набор_символов
Чаще всего происходит одна вещь: документ открывается просто не в той кодировке из-за чего происходит путаница, и вместо кода одних символов, будут вызваны другие. На экране появляются различные непонятные символы (см. рис. 1)…
Рис. 1. Блокнот — проблема с кодировкой
Как с этим бороться?
На мой взгляд лучший вариант — это установить продвинутый блокнот, например Notepad++ или Bred 3. Рассмотрим более подробно каждую из них.
Notepad++
Один из лучших блокнотов как для начинающих пользователей, так и для профессионалов. Плюсы: бесплатная программа, поддерживает русский язык, работает очень быстро, подсветка кода, открытие всех распространенных форматов файлов, огромное количество опций позволяют подстроить ее под себя.
В плане кодировок здесь вообще полный порядок: есть отдельный раздел «Кодировки» (см. рис. 2). Просто попробуйте сменить ANSI на UTF-8 (например).
Рис. 2. Смена кодировки в Notepad++
После смены кодировки мой текстовый документ стал нормальным и читаемым — иероглифы пропали (см. рис. 3)!
Рис. 3. Текст стал читаемый… Notepad++
Bred 3
Еще одна замечательная программа, призванная полностью заменить стандартный блокнот в Windows. Она так же «легко» работает со множеством кодировок, легко их меняет, поддерживает огромное число форматов файлов, поддерживает новые ОС Windows (8, 10).
Кстати, Bred 3 очень помогает при работе со «старыми» файлами, сохраненных в MS DOS форматах. Когда другие программы показывают только иероглифы — Bred 3 легко их открывает и позволяет спокойно работать с ними (см. рис. 4).
Если вместо текста иероглифы в Microsoft Word
Самое первое, на что нужно обратить внимание — это на формат файла. Дело в том, что начиная с Word 2007 появился новый формат — « docx » (раньше был просто « doc «). Обычно, в «старом» Word нельзя открыть новые форматы файлов, но случается иногда так, что эти «новые» файлы открываются в старой программе.
Просто откройте свойства файла, а затем посмотрите вкладку « Подробно » (как на рис. 5). Так вы узнаете формат файла (на рис. 5 — формат файла «txt»).
Если формат файла docx — а у вас старый Word (ниже 2007 версии) — то просто обновите Word до 2007 или выше (2010, 2013, 2016).
Рис. 5. Свойства файла
Далее при открытии файла обратите внимание (по умолчанию данная опция всегда включена, если у вас, конечно, не «не пойми какая сборка») — Word вас переспросит: в какой кодировке открыть файл (это сообщение появляется при любом «намеке» на проблемы при открытии файла, см. рис. 5).
Рис. 6. Word — преобразование файла
Чаще всего Word определяет сам автоматически нужную кодировку, но не всегда текст получается читаемым. Вам нужно установить ползунок на нужную кодировку, когда текст станет читаемым. Иногда, приходится буквально угадывать, в как был сохранен файл, чтобы его прочитать.
Рис. 7. Word — файл в норме (кодировка выбрана верно)!
Смена кодировки в браузере
Когда браузер ошибочно определяет кодировку интернет-странички — вы увидите точно такие же иероглифы (см. рис 8).
Рис. 8. браузер определил неверно кодировку
Чтобы исправить отображение сайта: измените кодировку. Делается это в настройках браузера:
- Google chrome: параметры (значок в правом верхнем углу)/дополнительные параметры/кодировка/Windows-1251 (или UTF-8);
- Firefox: левая кнопка ALT (если у вас выключена верхняя панелька), затем вид/кодировка страницы/выбрать нужную (чаще всего Windows-1251 или UTF-8) ;
- Opera: Opera (красный значок в верхнем левом углу)/страница/кодировка/выбрать нужное.
PS
Таким образом в этой статье были разобраны самые частые случаи появления иероглифов, связанных с неправильно определенной кодировкой. При помощи выше приведенных способов — можно решить все основные проблемы с неверной кодировкой.
Буду благодарен за дополнения по теме. Good Luck
Практикум по теме «Кодирование текста»
Продолжение. См. № 7/2009
Выполняя лабораторную работу (см. № 7/2009), учащиеся получили кодовую таблицу для Windows —
CP-1251. Следующие этапы практикума — познакомиться с существованием множества кодовых таблиц, самостоятельно получить другие кодовые таблицы с символами кириллицы и, наконец, написать программу перекодировки текста (все программирование в этом варианте курса информатики — на Лого).
Учебные материалы и задания для учащихся
Таблицы кодировки
Наверное, вам приходилось сталкиваться с ситуацией, когда текст на экране компьютера выглядит, как нарочно зашифрованный. Например, так:
Происходят такие неприятности в результате существования не одной-единственной, а нескольких таблиц кодировки. Почему так получилось?
Американский стандартный код для обмена информацией (ASCII) первоначально был разработан для передачи текстов по телеграфу, причем в то время он был 7-битовым, то есть для кодирования символов английского языка, служебных и управляющих символов использовались только 128 семибитовых комбинаций. При этом первые 32 кода служили для кодирования управляющих сигналов (начало текста, конец строки, перевод каретки, звонок, конец текста и т.д.). При разработке первых компьютеров фирмы IBM этот код был использован для представления символов в компьютере. На кодирование каждого символа был отведен байт, а поскольку в исходном коде ASCII было всего 128 символов, для их кодирования хватило половины восьмибайтовых кодов.
Оставшуюся вторую половину кодов стали использовать для представления символов псевдографики, математических знаков и некоторых символов из языков, отличных от английского (греческих букв, немецких умляутов, французских диакритических знаков и т.п.).
Когда стали приспосабливать компьютеры для других стран и языков, фирма IBM ввела в употребление несколько кодовых таблиц, ориентированных на конкретные страны. Так, для скандинавских стран была предложена таблица CP-865 (Nordic), для арабских стран — таблица CP-864 (Arabic), для Израиля — таблица CP-862 (Israel) и так далее. В этих таблицах часть кодов из второй половины кодовой таблицы использовалась для представления символов национальных алфавитов.
С русским языком ситуация развивалась особым образом. Появилось несколько разных таблиц с символами кириллицы: KOI8-R, CP-866, CP-1251 (именно ее вы получили в лабораторной работе), ISO-8551-5.
Одна из причин в том, что таблица кодировки связана с операционной системой (операционная система управляет компьютером и осуществляет операции ввода-вывода информации).
Программы для работы с текстами — текстовые редакторы, браузеры — “умеют” перекодировать текст в соответствии с указанной таблицей кодировки.
Кодировка на web-странице
Грамотно сделанный HTML-документ обязательно должен содержать специальный тег с указанием использованной в нем таблицы кодировки. Если вы попали в Интернете на “нечитаемую” страницу, то скорее всего в HTML-коде нет тега с кодировкой. Но браузер поможет вам прочесть страницу. Для этого в браузерах есть специальное меню.
Но даже наличие множества различных национальных таблиц кодировки не может решить всех проблем с кодированием текстов. Для таких языков, как китайский или японский, вообще 256 символов недостаточно. Кроме того, всегда существует проблема вывода или сохранения в одном файле одновременно текстов на разных языках (например, при цитировании).
Поэтому была разработана универсальная кодовая таблица UNICODE, содержащая символы, применяемые в языках всех народов мира, а также различные служебные и вспомогательные символы (знаки препинания, математические и технические символы, стрелки, диакритические знаки и т.д.).
Очевидно, что одного байта недостаточно для кодирования такого большого количества символов в одной таблице. Поэтому в UNICODE используются 16-битовые (двухбайтовые) коды. К настоящему времени задействовано около 49 000 кодов, время от времени в таблицу добавляются новые знаки. Например, в сентябре 1998 г. в таблицу был внесен символ валюты EURO.
Сейчас в компьютерном мире сосуществуют однобайтовые и двухбайтовые таблицы кодировки, но постепенно будет полностью осуществлен переход на UNICODE.
1. Подберите с помощью браузера кодировку для следующих страниц.
Примечание для читателя “Информатики”: учитель создает для этого задания две-три web-страницы с текстом в разных кодировках и тэг с указанием кодовой страницы удаляет.
Запишите, какие таблицы кодировки использованы в этих документах.
2. Вы обратили внимание на то, что при любых изменениях кодировки английские слова прекрасно читаются? Объясните, почему так получается.
3. Рассчитайте, сколько всего различных текстовых символов можно закодировать двоичным кодом при двухбайтовой системе кодирования.
Получение разных кодовых таблиц
Выполняя лабораторную работу, вы получили шестнадцатеричную кодовую таблицу CP-1251. Ведь именно с этой таблицей работает русифицированная операционная среда Windows.
Для получения таблицы вы написали программу на Лого. А таблицу поместили и оформили в документе MS Word. Если эту таблицу поместить на web-страницу (то есть в документ HTML), то можно с помощью браузера получить и другие таблицы кодировки.
1. Получение web-страницы с таблицей кодировки
Помните, какие тэги нужны для создания таблицы на web-странице? Вот пример HTML-кода для таблицы, состоящей из четырех ячеек (двух столбцов и двух строк):
(начало первой строки)
содержимое ячейки 1
содержимое ячейки 2
(конец первой строки)
(начало второй строки)
содержимое ячейки 3
содержимое ячейки 4
(конец второй строки)
Откройте вашу программу получения таблицы кодировки. Внесите в программу изменения: в текстовое окно должны попасть теперь еще и тэги для строк и ячеек. Не забудьте добавить тэги структуры HTML-документа. В результате в текстовом окне должен появиться HTML-код web-страницы, содержащей кодовую таблицу.
Сохраните текст в файле. Не забудьте про расширение имени файла!
Просмотрите получившуюся страницу в браузере. Если с таблицей все в порядке, можно начинать эксперименты.
Попробуйте менять кодировку страницы — вид таблицы должен меняться. Таким образом можно получить все кодовые таблицы, имеющиеся в браузере (только однобайтовые, конечно!).
Сформулируйте, что именно меняется в таблице при переходе от одной кодировки к другой.
2. Добавление десятичного номера
Для вашей следующей работы (создания программы-перекодировщика) нужно, чтобы в таблице были еще и десятичные номера символов. Например, так, как на этой картинке:
Усовершенствуйте вашу программу так, чтобы на web-странице появились и номера. Сделайте скриншоты кодовых таблиц с кириллицей: Windows-1251, KOI8-R, CP-866, MacCyrillic. Сохраните скриншоты в отдельных файлах в формате GIF.
Время на выполнение этой части практикума — 3 урока.
Пример решения
repeat 14 [строчка :n pr [] make “n :n + 16]
repeat 16 [insert char :n insert char 32
Результат — 14 строк по 16 символов в каждой.
Программа, создающая HTML-код (без десятичных номеров):
Способы кодирования и шифрования. Часть 1
СПОСОБЫ КОДИРОВАНИЯ И ШИФРОВАНИЯ
ЧАСТЬ 1
Автор Кэйт Мулкахи. Перевод Владимир Лахмаков
10 КОДОВ И ШИФРОВ
Потребность скрыть значение важных сообщений существовала в течение тысяч лет. Со временем люди нашли все более и более сложные способы кодирования своих сообщений, поскольку любые простые способы кодировки расшифровываются с большей легкостью. Оппоненты, возражающие специилистам кодировки – говорят, что коды и шифры не синонимичны.
Код – это такая информация, где каждое слово в сообщении заменено кодовым словом или символом, тогда как шифр – это такой способ сокрытия информации, где каждая буква в письменном сообщении заменена буквой шифра или символом. На самом деле, когда большинство людей говорят “код”, они на самом деле, обращаются к шифрам.
Древние записи и языки были поняты, лишь через использование методов декодирования и дешифровки, и наиболее известное явление здесь – это Розеттский камень Древнего Египта. В реальности же, коды и шифры определяли результат хитросплетений политики и ведения войн на протяжении всей истории человечества.
Имеются тысячи типов секретных сообщений, но здесь мы рассмотрим лишь десять в виде иллюстрации всего вышесказанного. Здесь же мы приведём для Вас несколько примеров, с тем, чтобы помочь Вам проверить себя в дешифровке.
№ 1 КРИПТОГРАФИЯ ОБЩЕДОСТУПНОГО КЛЮЧА
Это – основной современный шифр, и у него есть несколько вариантов. У этого шифра, используемого во всем мире, есть два ключа: один общедоступный и один частный. Общедоступный ключ – это большое число, доступное всем. Особенность этого числа в том, что только два целых числа (кроме 1 и самого числа) делятся на него без остатка. Эти два числа и есть частный ключ, и, если их перемножить, то производное и будет общедоступный ключ. Например, общедоступный ключ число 1961, а частными ключами тогда являются цифры 37 и 53. Общедоступный ключ используется, чтобы зашифровать сообщение, но такое сообщение невозможно расшифровать без наличия частного ключа.
Когда Вы посылаете Ваши персональные данные по электронной почте в банк, или когда Ваша банковская карта прочитана банкоматом, все детали зашифрованы таким способом, и только банк может получить доступ к ним своим частным ключом. Причина того, что это совершенно безопасно, состоит в том, что математически очень трудно найти делители больших чисел. Чтобы помочь подобной безопасности, Лаборатории RSA, до недавнего времени, обещали большие деньги любому, кто смог бы найти два целителя для чисел, которые они предложили.
Проверьте себя, попытавшись найти два делителя для чисел с 50 цифрами: 15226050279225333605356183781326374297180681149613
80688657908494580122963258952897654000350692006139
Решение оценивается в $1000.
Код Энигма, который был очень сложным шифром, использовался немцами во время Второй мировой войны. Энигма напоминала собой машинку, подобную пишущей машинке, где нажатие буквы высвечивает букву шифра на экране. Машина Энигма включала в себя несколько колесиков, которые соединили буквы с проводами, определяя, который из них высветит букву шифра. Все машины Энигмы были идентичны, и знание, начальной конфигурации колес внутри механизма, было ключом к зашифровыванию сообщений. Чтобы еще более усложнить процесс дешифровки сообщения, каждое колесо проворачивалось после определенного числа напечатанных букв, и, таким образом, шифр непрерывно изменялся в рамках одного сообщения.
Немецкие командующие имели машины Энигма и подготовленные списки начальной конфигурации колес машины, чтобы использовать их ежедневно с тем, чтобы все шифровальщики немецкой армии использовали один и тот же шифр и могли расшифровывать сообщения друг друга.
Даже когда Союзники разжились копией машины Энигма, они ничего не смогли расшифровать, поскольку имелось более ста триллионов возможных конфигураций колес для дешифровки. Код Энигмы был взломан польскими специалистами и усовершенствован британскими инженерами с помощью компьютеров. Знание немецких сообщений дало Союзникам преимущество в войне, а кроме того, от взлома кода Энигмы, родился предок современных компьютеров.
№ 3 ИСТИННЫЕ КОДЫ
В истинном коде каждое слово заменено кодовым словом или числом согласно ключу. Поскольку имеется множество слов, которые могут быть использованы в сообщении, то ключом обычно является кодовая книга, где любой может искать какое-либо английское слово и найти соответствующее кодовое слово. Такая кодовая книга мало чем отличается от словаря. Так же, как короткие сообщения трудно расшифровать с помощью анализа частоты встречаемости букв, код должен быть довольно длинным прежде чем анализ частотности слова станет полезным, и, таким образом, коды более трудно расшифровывать, чем шифры. Многие страны использовали такие варианты кодов, где каждый день использовался новый код, чтобы сохранить их от взлома с использованием анализа частотности буквы или целого слова. Для повседневной жизни, однако, использование таких кодов довольно трудоемко по времени, а сама кодовая книга тяжёлая на вес. Гораздо хуже обстоит дело, если кодовая книга была украдена, а это означает, что используемый ранее код больше не безопасен, а потому должен быть создан новый, заняв огромное количество времени и усилий. Коды, главным образом, полезны для богатых и облеченных властью людей, тех, кто может делегировать эту работу другим.
№ 4 Шифр Виженера
Этот шифр более сложен, чем моноалфавитная замена. Его ключом является слово, например такое как “CHAIR”. Правило шифра подобно шифру Цезаря, за исключением того, что изменения с каждым письмом согласно ключевому слову. Первая буква в сообщении с ключевым словом “CHAIR” будет закодировано шифром C английского алфавита, вторая – шифром H, и так будет продолжаться как по всему ключевому слову. Ключевое слово содержит в себе только пять букв, таким образом, для шестой буквы сообщения снова используется шифр C.
Шифр Vigen;re, (Шифр Виженера), оставался невзломанным в течение долгого времени. Ведь чтобы расшифровать зашифрованное им сообщение, требуется сначала определить длину ключевого слова. Если ключевое слово предполагается имеет в себе лишь пять букв, то буквы, пронумерованные цифрами 1, 6, 11, 16, 21, и т.д. будут все соответствовать первой букве ключевого слова, и анализ частоты встречаемости букв поможет расшифровать сообщение. Декодировщик двигается затем к буквам под цифрами 2, 7, 12, 17 и так далее. Если ключевое слово будет действительно состоять, например, лишь из пяти букв, то это поможет расшифровать зашифрованное послание. В противном случае следует предположить другую длину ключевого слова, и весь процесс построен в той же последовательности.
Проверьте себя, попытавшись расшифровать такую запись: «Eoaqiu hs net hs byg lym tcu smv dot vfv h petrel tw jka».
№ 5 МОНОАЛФАВИТНАЯ ЗАМЕНА
Приведенные выше шифры ROT1, шифр Цезаря и Азбука Морзе – являются шифрами одного типа: моноалфавитной замены, подразумевая то, что каждая буква алфавита в таких шифрах заменяется согласно ключу с другой буквой или символом. Но даже не зная ключа к этим шифрам, их на самом деле легко расшифровать. Наиболее распространенная буква в английском языке как известно, это буква «E». Поэтому в любом моноалфавитном шифре, наиболее распространенной буквой или символом также будет буква «E». Второй самой распространенной английской буквой является буква «T», а третье место занимает по распространенности буква «A», и таким образом, уже эти две буквы могут быть также определены без особых затруднений. С учётом этого, человек, расшифровывающий сообщение, может продолжить использовать частотность встречаемости этих английских букв, или же искать почти полные слова, такое, например, как “T_E”, которое с большой вероятностью подходит к слову «THE».
К сожалению, это правило работает только в длинных сообщениях, а не в таких, где имеются лишь несколько слов, так как в них нет достаточного количества букв, чтобы показать, какие буквы являются самыми частыми в зашифрованном сообщении.
Известно, что Королева Шотландии Мэри использовала моноалфавитный шифр с некоторыми изменениями, который был невероятно трудным для дешифровки, однако когда этот шифр был наконец взломан, зашифрованные в послании сообщения дали свидетельские показания, используемые затем ее противниками, чтобы приговорить Королеву Мэри к смерти.
Проверьте себя, попытавшись расшифровать такую запись: «Ptbndcb ymdptmq bnw yew, bnwzw raw rkbcriie wrze bd owktxnwa».
№ 6 Заменяемый Шифр Цезаря
«Заменяемый Шифр Цезаря», названный так, потому что использовался самим Юлием Цезарем, является на самом деле 26 различными шифрами, по одному для каждой буквы алфавита. Упомянутый ранее шифр «ROT 1» – только один из таких шифров. Получателю нужно только сообщить, какой Шифр Цезаря использовался, для того, чтобы расшифровать сообщение. Если используется шифр G, то буква A становится G, буква B становится H, буква C становится I, и так далее по алфавиту. Если используется шифр Y, то A становится Y, B становится Z, C становится A и так далее. Этот шифр является основой для многих более сложных шифров, но сам по себе не обеспечивает серьезную защиту секретного сообщения, поскольку перебор всех 26 различных ключей этого шифра не занимает относительно большого количества времени.
Проверьте себя, попытавшись расшифровать такую запись: «Li bra ghflskhu wklv dqg bra nqrz lw, fods brxu kdqgv».
Несмотря на свое название, Азбука Морзе – это не код, а шифр. Каждая буква алфавита, цифры 0-9, и определенные символы пунктуации, заменены последовательностью коротких и долгих звуковых сигналов, часто называемых “точки и тире”. Английская буква «А» становится “• – “, буква «B» становится “- •••” и так далее. В отличие от большинства других шифров, этот шифр не используется для сокрытия сообщения. Азбука Морзе была очень распространена с изобретением телеграфа Сэмюэля Морзе, который стал первым широко используемым электрическим средством отправки сообщений на большие расстояния. Телеграф включал в себя прокладку длинного провода между местами связи и провод управления распределением электротока. Электрический ток мог быть обнаружен приемником на расстоянии во много километров, а точки, и тире формировались последовательным включением и выключением тока. Телеграф коренным образом изменил СМИ, позволив событиям в одной стране быть немедленно сообщенным в другой, и это изменило природу войны, позволив установку мгновенной связи с войсками на большом расстоянии.
Проверьте себя, попытавшись расшифровать такую запись: « • – •• – • – •• – •••·· – ••· – •••• – »
В шифрах «транспозиции» или «перемещения букв», буквы перестроены согласно некоторому заранее определенному двумя сторонами правилу или ключу. Например, слова могли быть написаны в обратном порядке, так, что фраза “all the better to see you with” становится “lla eht retteb ot ees uoy htiw”.
Другой ключ транспозиции должен изменять каждую пару букв, и таким образом, предыдущее сообщение получает вид: “la tl eh eb tt re to es ye uo iw ht”.
Такие шифры использовались во время Первой мировой войны и гражданской войны в Америке, чтобы посылать секретные сообщения. Сложные правила перестановки заставляют использующего эти шифры испытывать некие затруднения и кажутся сначала довольно трудными, но многие сообщения с транспозиционными шифрами могут быть расшифрованы с использованием анаграмм или современных компьютерных алгоритмов, которые проверяют тысячи возможных ключей шифра перемещения.
Проверьте себя, попытаясь расшифровать: «THGINYMROTSDNAKRADASAWTI»
Это – шифр, знакомый многим детям. Его ключ очень простой: каждая буква алфавита заменена следующей за ней буквой, таким образом, A заменяется Б, Б заменяется В и так далее. “ROT1” буквально означает, “ROTate 1 letter forward through the alphabet” – “Замени 1 букву буквой, следующей за ней в алфавите”.
Для иллюстрации, сообщение на английском языке: “I know what you did last summer” – “Я знаю, что Вы делали прошлым летом”, станет “J lopx xibu zpv eje mbtu tvnnfs” и так далее. Этот шифр – детское развлечение, потому что его легко дешифровать, понять и использовать, его одинаково легко расшифровать, если сообщение вводят, используя буквы от конца алфавита. В целом, этот шифр не подходит для серьезного использования, но может стать большим развлечением для детей.
А теперь, попытайтесь расшифровать такое сообщение: “XBT JU B DBU J TBX?”
Стеганография – это более древний язык сокрытия секретных сведений, чем коды и шифры, и является искусством скрытого письма. Например, некое тайное сообщение могло быть написано на бумаге, затем покрыто воском и проглочено, чтобы скрыть его, с целью быть извергнутым позже. Другим способом являлось татуирование сообщения на выбритой голове посыльного и последующей необходимостью отращивания волос, чтобы скрыть татуировку. Лучшая стеганография использует невинные на первый взгляд предметы повседневного пользования, чтобы скрытно донести до адресата предназначенное ему сообщение. Некогда популярная техника сокрытия сообщений в Англии использовала обычную газету с крошечными точками под буквами на первой полосе, указывающими, какие буквы должны быть прочитаны, чтобы правильно прочитать и понять скрытое сообщение. Некоторые люди скрывали сообщение, используя первую букву каждого слова или используя невидимые чернила. Противоборствующие стороны сократили уже свои тайные записи настолько, что целая страница текста стала размером с пиксель, который может быть легко пропущен любопытными глазами. Стеганография лучше всего работает, когда используется вместе с кодом или шифром, поскольку не скрытое кодом или шифром сообщение всегда подвергается риску того, что может быть обнаруженным.
Пояснение из Википедии — свободной энциклопедии: Стеганогра;фия (от греч. ;;;;;;;; — скрытый+;;;;; — пишу; буквально «тайнопись») — способ передачи или хранения информации с учётом сохранения в тайне самого факта такой передачи (хранения). Этот термин ввел в 1499 году Иоганн Тритемий в своем трактате «Стеганография» (Steganographia), зашифрованном под магическую книгу. В отличие от криптографии, которая скрывает содержимое тайного сообщения, стеганография скрывает сам факт его существования. Как правило, сообщение будет выглядеть как что-либо иное, например, как изображение, статья, список покупок, письмо или судоку.
Стеганографию обычно используют совместно с методами криптографии, таким образом, дополняя её. Преимущество стеганографии над чистой криптографией состоит в том, что сообщения не привлекают к себе внимания. Сообщения, факт шифрования которых не скрыт, вызывают подозрение и могут быть сами по себе уличающими в тех странах, в которых запрещена криптография. Таким образом, криптография защищает содержание сообщения, а стеганография защищает сам факт наличия каких-либо скрытых посланий.
Информатика. 10 класс
Конспект урока
Информатика, 10 класс. Урок № 14.
Тема — Кодирование текстовой информации
Цели и задачи урока:
— познакомиться со способами кодирования и декодирования текстовой информации с помощью кодовых таблиц и компьютера;
— познакомиться со способом определения информационного объема текстового сообщения;
— познакомиться с алгоритмом Хаффмана.
Вся информация в компьютере хранится в двоичном коде. Поэтому надо научиться преобразовывать символы в двоичный код.
Формула Хартли определяет количество информации в зависимости от количества возможных вариантов:
N — это количество вариантов,
i — это количество бит, не обходимых для кодирования.
Если же мы преобразуем эту формулу и примем за N — количество символов в используемом алфавите (назовем это мощностью алфавита), то мы поймем, сколько памяти потребуется для кодирования одного символа.
N=2 i , где N — кол-во возможных вариантов
i — кол-во бит, потребуемых для кодирования
Итак, если в нашем алфавите будет присутствовать только 32 символа, то каждый из них займет только 5 бит.
И тогда каждому символу мы дадим уникальный двоичный код. Такую таблицу мы будем назвать кодировочной.
Первая широко используемая кодировочная таблица была создана в США и называлась ASCII, что в переводе означало American standard code for information interchange. Как вы видите, в таблице присутствуют не только латинские буквы, но и цифры, и даже действия. Каждому символу отводится 7 бит, а значит, всего было закодировано 128 символов.
Но так как этого количества было недостаточно, стали создаваться другие таблицы, в которых можно было закодировать и другие символы. Например, таблица Windows-1251, которая, по сути, являлась изменением таблицы ASCII, в которую добавили буквы кириллицы. Таких таблиц было создано множество: MS-DOS, КОИ-8, ISO, Mac и другие:
Проблема использования таких различных таблиц приводила к тому, что текст, написанный на одном компьютере, мог некорректно читаться на другом. Например:
Поэтому была разработана международная таблица кодировки Unicode, включающая в себя как символы английского, русского, немецкого, арабского и других языков. На каждый символ в такой таблице отводится 16 бит, то есть она позволяет кодировать 65536 символов. Однако использование такой таблицы сильно «утяжеляет» текст. Поэтому существуют различные алгоритмы неравномерной кодировки текста, например, алгоритм Хаффмана.
АЛГОРИТМ ХАФФМАНА
Идея алгоритма Хаффмана основана на частоте появления символа в последовательности. Символ, который встречается в последовательности чаще всего, получает новый очень маленький код, а символ, который встречается реже всего, получает, наоборот, очень длинный код.
Пусть нам дано сообщение aaabcbeeffaabfffedbac.
Чтобы узнать наиболее выгодный префиксный код для такого сообщения, надо узнать частоту появления каждого символа в сообщении.
Подсчитайте и внесите в таблицу частоту появления каждого символа в сообщении:
У вас должно получиться:
Расположите буквы в порядке возрастания их частоты.
Теперь возьмем два символа с наименьшей чистотой и представим их листьями в дереве, частота которого будет равна сумме частот этих листьев.
Символы d и c превращаются в ветку дерева:
Проделываем эти шаги до тех пор, пока не получится дерево, содержащее все символы.
Итак, сортируем таблицу:
Объединяем символ e и символ cd в ветку дерева:
Получился префиксный код. Теперь осталось расставить 1 и 0. Пусть каждая правая ветвь обозначает 1, а левая — 0.
Составляем код буквы, идя по ветке дерева от буквы к основанию дерева.
Тогда код для каждой буквы будет:
Закодируйте ASCII кодом слово MOSCOW.
Составим таблицу и поместим туда слово MOSCOW. Используя таблицу ASCII кодов, закодируем все буквы слова:
Расшифровываем абракадабру в компьютерном тексте (пошаговый алгоритм)
Сообщения: 52
Благодарности:
Профиль | Отправить PM | Цитировать
Железных Дел Мастер
Сообщения: 23929
Благодарности: 4348
Конфигурация компьютера | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Материнская плата: Asrock (AB350 Pro4) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HDD: Samsung SSD 860 Evo 250Gb M.2 (MZ-N6E250BW); WD HDD 1Tb (WD10EARS-00Y5B1); TOSHIBA 2Tb (MK2002TSKB); Samsung Portable 500GB (MU-PA500B/WW) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Блок питания: Seasonic 550W Gold (SSR-550RT) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Монитор: Dell 24″ (2408WFP) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ОС: Win10 x64 Pro | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() Сообщения: 25159
Сообщения: 52 Железных Дел Мастер Сообщения: 23929
|