轨道
/
AWK
AWK
/
练习
/
旋转密码
旋转密码

旋转密码

简单

说明

实现一个旋转密码,它有时也被称作凯撒密码。

凯撒密码是一种简单的移位密码,它通过一个介于0和26之间的整数密钥,对字母表中的所有字母进行移位。由于模运算的关系,使用0或26作为密钥总是得到相同的输出。字母会按照密钥的值移动相应的位数。

旋转密码的通用记法是ROT + <key>。最常用的旋转密码是ROT13。

对拉丁字母表应用ROT13的效果如下:

Plain:  abcdefghijklmnopqrstuvwxyz
Cipher: nopqrstuvwxyzabcdefghijklm

它比埃特巴什密码更强,因为它有 27 个可能的密钥,其中 25 个可用。

密文的书写格式与输入相同,包括空格和标点。

示例

  • ROT5 把omg变成trl
  • ROT0 把c变成c
  • ROT26 把Cool变成Cool
  • ROT13 把The quick brown fox jumps over the lazy dog.变成Gur dhvpx oebja sbk whzcf bire gur ynml qbt.
  • ROT13 把Gur dhvpx oebja sbk whzcf bire gur ynml qbt.变成The quick brown fox jumps over the lazy dog.

ASCII 值

这个练习需要在 ASCII 字符和对应的数值之间来回转换。GNU awk 的 ordchr 扩展 提供了这个功能。要添加ord()和chr()函数,请在文件顶部添加一条@load指令来加载ordchr扩展:

@load "ordchr"

来源

Wikipedia链接会在新窗口或新标签页中打开
通过 GitHub 编辑 链接将在新窗口或新标签页中打开
AWK Exercism

准备好开始 旋转密码 了吗?

注册 Exercism,借助 3 个概念92 个练习 和真人导师指导,学习并掌握 AWK,全部免费。