Создать зашифрованный rot13 шифратор слишком просто, потому что буквы находятся в одном и том же порядке в символьном пространстве ASCII. Давайте попробуем двигатель rot32 вместо этого.
Ваша задача состоит в том, чтобы создать функцию, которая принимает строку Base64 в качестве входных данных и возвращает ту же строку, но с каждой буквой, повернутой на 32 символа от ее оригинала (по сути, с перевернутым первым битом).
Строка кодирования base64, используемая для этой проблемы, 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/
содержит символ дополнения =
. Это делается для предотвращения решений, которые в противном случае использовали бы или импортировали встроенную библиотеку Base64, где строки обычно начинаются с, A
а не с 0
.
Example inputs and outputs:
> rot32("THE+QUICK+BROWN+FOX+JUMPS+OVER+THE+LAZY+DOG=")
nb8ukoc6eu5liqhu9irudogjmuip8lunb8uf4tsu7ia=
> rot32("NB8UKOC6EU5LIQHU9IRUDOGJMUIP8LUNB8UF4TSU7IA=")
h5Eoei6C8oBfckboFclo7iadgocjEfoh5Eo9AnmoDc4=
> rot32("Daisy++daisy++give+me+your+answer+true/I+/+m+half+crazy++all+for+the+love+of+you")
7GOY2uuJGOY2uuMO/KuSKu2U+XuGTY0KXuZX+KvcuvuSuNGRLuIXG32uuGRRuLUXuZNKuRU/KuULu2U+
Самая короткая программа на любом языке выигрывает.
Ответы:
CJam, 24 байта
Попробуйте онлайн.
Как это работает
источник
Bash / Unix shell, 29
Вход от STDIN, выход от STDOUT.
источник
Perl, 41
Просто простая транслитерация . Читает из STDIN, выводит в STDOUT:
Попробуйте это здесь.
источник
-p
и-e
ключи командной строки , чтобы избавиться от$_=<>;
и;print
.CJam,
45 41 38 29 2726 байтовЧитает строку для шифрования из STDIN
Как это работает :
Попробуйте онлайн здесь
источник
Питон, 178
Это неисчерпаемая ссылочная реализация последнего места в Python, которую вы можете использовать для тестирования своей собственной реализации.
источник
GolfScript (
4140 байт)Онлайн демо
Здесь есть две части: перевод - это вариант последнего метода, упомянутого в моем совете по
tr
GolfScript , а другая часть - построение строк, которое использует строку0:a{A[
в качестве массива значений символов и сгиб, чтобы превратить их в диапазоны символов. Обратите внимание на использование32/(*
для построения переведенной строки, вставляя первые 32 символа между вторыми 32 символами и переводимым символом.источник
питон, 69
тесты
источник
LiveScript, 91
LiveScript, 50
Если строка разрешена в качестве второго аргумента.
источник
JavaScript 164
источник