构建高尔夫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+
以任何语言进行的最短程序都将获胜。
4
从这个问题上,我将理解我们必须进行base-64解码,一些位纠缠和base-64编码。但是您的样本答案表明,有关base-64的所有讨论都是红色鲱鱼,就像rot-13一样,只是不被忽略的字符集更大。哪有
—
彼得·泰勒
就像rot-13一样,但我当时认为按位排列可能是使代码更短的一种可行策略。
—
Joe Z. 2014年