Шифрование и дешифрование текста методом Цезаря
Коротко об инструменте
Самый старый из школьных шифров: каждая буква сдвигается по алфавиту на выбранное число позиций, а в конце алфавит замыкается в кольцо. Здесь вы задаёте сдвиг числом от 1 до 25 и одной кнопкой получаете зашифрованную либо расшифрованную строку. Чаще всего это нужно для квестов и настольных игр, для домашнего задания по криптографии и для разбора старых головоломок. Текст обрабатывается прямо в браузере и никуда не передаётся. Смотрите также: быстрый сдвиг на 13 букв (ROT13), шифрование по ключевому слову, случайная строка вместо предсказуемого ключа.
Сдвиг применяется к латинскому алфавиту. Кириллические буквы страница пропускает без изменений, поэтому русская фраза останется читаемой и шифрования по сути не будет. Если задание требует именно русский алфавит из тридцати трёх букв, транслитерируйте текст в латиницу или используйте таблицу сдвига вручную — кольцо там другой длины.
Они остаются на своих местах без изменений: сдвигаются только буквы. С одной стороны, это удобно — структура фразы и даты в тексте не ломаются. С другой, это подсказка тому, кто будет вскрывать шифр: по длине слов и по знакам препинания сообщение угадывается почти сразу.
Да, заглавная буква остаётся заглавной, а строчная — строчной, сдвигается только позиция в алфавите. Именно поэтому в примере ATTACK превращается в DWWDFN с сохранением капса. Учтите, что сохранённый регистр тоже облегчает взлом: имена собственные и начала предложений видно невооружённым глазом.
Он не надёжен вообще. Вариантов сдвига всего двадцать пять, и перебрать их вручную можно за минуту, а частотный анализ вскрывает сообщение ещё быстрее. Это учебный и игровой инструмент: квесты, записки, задания по информатике. Для паролей, документов и переписки берите нормальное шифрование, а не сдвиг алфавита.
ROT13 — это тот же шифр Цезаря с жёстко зафиксированным сдвигом на тринадцать позиций. Поскольку в латинском алфавите двадцать шесть букв, шифрование и расшифровка там совпадают. Здесь сдвиг выбираете вы, поэтому нужны две отдельные кнопки: «Зашифровать» и «Расшифровать».
Поле принимает значения от 1 до 25, и это не каприз: сдвиг 0 и сдвиг 26 возвращают исходный текст без изменений, потому что алфавит проворачивается ровно на полный круг. Если вам нужен сдвиг 27, он равнозначен сдвигу 1, а сдвиг 30 — сдвигу 4.
До: Сдвиг 3, текст: ATTACK AT DAWN
После: DWWDFN DW GDZQ
До: Шифротекст: KHOOR ZRUOG
После: При сдвиге 3 расшифровка даёт HELLO WORLD
Оценка и фидбек помогают понять, что улучшать дальше.