首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构建一个rot32加密器

构建一个rot32加密器
EN

Code Golf用户
提问于 2014-11-30 21:59:18
回答 7查看 2K关注 0票数 10

构建一个金色的rot13加密器太容易了,因为在ASCII字符空间中字母都是相同的顺序。让我们来试试rot32引擎吧。

您的任务是构建一个函数,该函数以一个Base64字符串作为输入,并返回相同的字符串,但每个字母从其原始字符串中旋转32个符号(本质上,第一个位翻转)。

用于此问题的base64编码字符串是0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/,其填充字符为=。这是为了防止使用或导入内置Base64库的解决方案,其中字符串通常以A而不是0开头。

代码语言:javascript
复制
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+

在任何语言中这样做的最短程序获胜。

EN

回答 7

Code Golf用户

回答已采纳

发布于 2014-12-01 04:38:55

CJam,24字节

代码语言:javascript
复制
q"+"":/{a[A"{,^}/_32m>er

在网上试试。

是如何工作的

代码语言:javascript
复制
q         " Read from STDIN.                                                              ";
"+"       " Push that string.                                                             ";
":/{a[A"  " Push that string.                                                             ";
{         " For each character in the second string:                                      ";
  ,       "   Push the string of all charcters with a lower ASCII code.                   ";
  ^       "   Take the symmetric difference of the two topmost strings on the stack.      ";
}/        " Result: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/0123456789'.   ";
_32m>     " Rotate a copy 32 characters to the right.                                     ";
er        " Perform character transliteration.                                            ";
票数 4
EN

Code Golf用户

发布于 2014-12-01 00:20:24

Bash / Unix,29

代码语言:javascript
复制
tr 0-9a-zA-Z+/ w-zA-Z+/0-9a-v

STDIN输入,STDOUT输出。

票数 16
EN

Code Golf用户

发布于 2014-11-30 22:56:26

Perl,41

只是一个简单的音译。从STDIN读取,输出到STDOUT:

代码语言:javascript
复制
$_=<>;y#0-9a-zA-Z+/#w-zA-Z+/0-9a-v#;print

在这里试试。

票数 5
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/42054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档