Треки
/
OCaml
OCaml
/
Вправи
/
Шифр Атбаш
Шифр Атбаш

Шифр Атбаш

Середня

Вказівки

Створіть реалізацію шифру Атбаш, стародавньої системи шифрування, що виникла на Близькому Сході.

Шифр Атбаш - це простий шифр підстановки, який полягає в перестановці всіх літер алфавіту так, що отриманий алфавіт стає зворотним. Перша літера замінюється на останню, друга - на передостанню, і так далі.

Шифр Атбаш для латинського алфавіту має такий вигляд:

Plain:  abcdefghijklmnopqrstuvwxyz
Cipher: zyxwvutsrqponmlkjihgfedcba

Це дуже слабкий шифр, бо він має лише один можливий ключ і є простим моноалфавітним шифром підстановки. Утім, за часів цього шифру це, ймовірно, не було проблемою.

Шифротекст записується групами фіксованої довжини, традиційний розмір групи - 5 літер; числа залишаються без змін, а розділові знаки не враховуються. Це зроблено, щоб ускладнити вгадування на основі меж між словами. Увесь текст кодується малими літерами.

Приклади

  • Кодування test дає gvhg
  • Кодування x123 yes дає c123b vh
  • Декодування gvhg дає test
  • Декодування gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt дає thequickbrownfoxjumpsoverthelazydog

Застарілість String.lowercase

Залежно від версії OCaml, яку встановлено, використання String.lowercase не вітається. Починаючи з версії 4.03.0 String.lowercase вважається застарілою, і замість неї слід використовувати String.lowercase_ascii. Тож замість того, щоб писати

String.lowercase "Hello, World!"

використайте

String.lowercase_ascii "Hello, World!"

Більше корисних функцій шукайте в документації String.


Джерело

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

Час розпочати Шифр Атбаш?

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