实现一个旋转密码,它有时也被称作凯撒密码。
凯撒密码是一种简单的移位密码,它通过一个介于0和26之间的整数密钥,对字母表中的所有字母进行移位。由于模运算的关系,使用0或26作为密钥总是得到相同的输出。字母会按照密钥的值移动相应的位数。
旋转密码的通用记法是ROT + <key>。最常用的旋转密码是ROT13。
对拉丁字母表应用ROT13的效果如下:
Plain: abcdefghijklmnopqrstuvwxyz
Cipher: nopqrstuvwxyzabcdefghijklm
它比埃特巴什密码更强,因为它有 27 个可能的密钥,其中 25 个可用。
密文的书写格式与输入相同,包括空格和标点。
omg变成trl
c变成c
Cool变成Cool
The quick brown fox jumps over the lazy dog.变成Gur dhvpx oebja sbk whzcf bire gur ynml qbt.
Gur dhvpx oebja sbk whzcf bire gur ynml qbt.变成The quick brown fox jumps over the lazy dog.
这个练习需要在 ASCII 字符和对应的数值之间来回转换。GNU awk 的 ordchr 扩展 提供了这个功能。要添加ord()和chr()函数,请在文件顶部添加一条@load指令来加载ordchr扩展:
@load "ordchr"