Треки
/
AWK
AWK
/
Вправи
/
Обертальний шифр
Обертальний шифр

Обертальний шифр

Легка

Вказівки

Створіть реалізацію шифру обертання, який іноді ще називають шифром Цезаря.

Шифр Цезаря - це простий шифр зсуву, який ґрунтується на перестановці всіх літер алфавіту за допомогою ключа у вигляді цілого числа від 0 до 26. Використання ключа 0 або 26 завжди дає той самий результат через модульну арифметику. Літера зсувається на стільки значень, скільки дорівнює значення ключа.

Загальне позначення для шифрів обертання - ROT + <key>. Найпоширеніший шифр обертання - ROT13.

ROT13 для латинського алфавіту має такий вигляд:

Plain:  abcdefghijklmnopqrstuvwxyz
Cipher: nopqrstuvwxyzabcdefghijklm

Він сильніший за шифр Атбаш, бо має 27 можливих ключів і 25 придатних до використання ключів.

Шифротекст записують у тому самому форматі, що й вхідні дані, разом із пробілами та розділовими знаками.

Приклади

  • ROT5 omg дає trl
  • ROT0 c дає c
  • ROT26 Cool дає Cool
  • ROT13 The quick brown fox jumps over the lazy dog. дає Gur dhvpx oebja sbk whzcf bire gur ynml qbt.
  • ROT13 Gur dhvpx oebja sbk whzcf bire gur ynml qbt. дає The quick brown fox jumps over the lazy dog.

Значення ASCII

Ця вправа вимагає перетворення символів ASCII на їхнє числове значення і навпаки. Розширення ordchr у GNU awk надає цю можливість. Щоб додати функції ord() і chr(), завантажте розширення ordchr, додавши на початок файлу директиву @load:

@load "ordchr"

Джерело

WikipediaПосилання відкривається в новому вікні або вкладці
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
AWK Exercism

Час розпочати Обертальний шифр?

Зареєструйтеся на Exercism, щоб вивчати й опановувати AWK, а також 3 концепції92 вправи та справжнє наставництво від людей, і все це безкоштовно.