Напишите программу, которая выполняет шифрование строки с помощью шифра Цезаря.

Ответы

Ответ дал: archery
0

# ruby v3.2

# шифр Цезаря, key - сдвиг, для расшифровки надо взять ключ с противоположным знаком

   def Encryption.CeaserCipher(text, key, alphabet) #

       res = ""

       dictionary, dictionary_upper = alphabet, alphabet.upcase

       text.each_char do |letter|

           if dictionary.include?(letter)

               dic = dictionary

           elsif dictionary_upper.include?(letter)

               dic = dictionary_upper

           else # Символ не принадлежит ни нижнему ни верхнему регистру (символ не является буквой)

               res += letter

               next

           end

           j = dic.index(letter)

           res += dic[(j + key) % dic.size]

       end

       return res

   end

Вас заинтересует