Кодирование и декодирование строк кодировке rot 13
Tagged:

Rot 13 - наверное, самый слабый из известных человечеству шифров. Исторически
он просто препятствовал «случайному» прочтению текста. Он часто встречается в
конференциях Usenet; например, так можно закодировать потенциально обидную
шутку или сценарий фильма «Звездные войны. Эпизод 13» накануне премьеры.
Принцип кодирования состоит в смещении символов относительно начала алфавита (латинского) на 13: А превращается в N, В - в О и т.д. Строчные буквы
смещаются на ту же величину; цифры, знаки препинания и прочие символы игнорируются. Поскольку 13 - это ровно половина от 26 (число букв в латинском алфавите), то функция является обратной самой себе, то есть ее повторное применение восстанавливает исходный текст.
Ниже приведена реализация этого метода, добавленного в класс string, нша
ких особых комментариев она не требует:
class String
def rotl3
self.tr("A-Ma-mN-Zn-z","N-Zn-zA-Ma-m")
end
end
joke = "Y2K bug"
jokel3 = joke.rotl3# "L2X oht"
episode2 = "Fcbvyre: Naanxva qbrfa'g trg xvyyrq."
puts episode2.rotl3