Реализуйте этот ключевой шифр
Цель
Используйте алгоритм (объясненный в разделе Алгоритм) для реализации определенного шифра.
Программа должна прочитать ввод из STDIN или ближайшего доступного эквивалента, использовать алгоритм для генерации зашифрованного текста и ключа.
Зашифрованный текст и ключ будут записаны в STDOUT или ближайший доступный эквивалент. Разрешен любой формат, если он выводит зашифрованный текст и ключ.
Алгоритм
Преобразуйте символы в строке в соответствующие значения ASCII. Например:
Hello -> 72 101 108 108 111
Далее вам нужно будет сгенерировать ключ, пока строка со случайными числами находится в диапазоне 0-9.
Hello -> 62841
Добавьте целые числа в последовательности случайных чисел к значениям ASCII строки. В приведенных выше примерах 72 станет 78, а 101 станет 104.
72 + 6 = 78, 101 + 2 = 103, 108 + 8 = 116, etc
Затем преобразуйте новые значения обратно в символы. В приведенных выше примерах текст Hello
стал Ngtpp
.
Примеры
(Это просто примеры того, как может выглядеть результат. Результат может и будет варьироваться.)
Hello World
Lfrlu)_supg
41606984343
This will be encoded
Zhjs$~koo gj$iuhofgj
60104723305544750226
правила
- Вы можете предположить, что ввод будет содержать только символы в диапазоне az, AZ и пробелах.
- Материалы должны быть полными программами или функциями.
- Материалы будут оцениваться в байтах.
- Стандартные лазейки запрещены.
- Это код-гольф, поэтому выигрывает самый короткий код.
(Это одна из моих первых проблем, если с ней что-то не так, не стесняйтесь рассказать мне, как я могу ее улучшить.)
preferably with the format (ciphertext)\n(key).
«предпочтительные функции» и код гольф не очень хорошо сочетаются. Вы должны сделать это обязательным или разрешить другие выходные форматы. 3. Ключ должен быть напечатан без пробелов? Как насчет печати в формате списка, например[0, 5, 2, ...]
?