凯撒移位密码

实践练习C++17

凯撒密码把字母沿字母表移动固定距离,移过 z 后重新从 a 开始。常见的 ROT13 表示移动 13 个位置。

任务说明

实现旋转密码,也称凯撒密码。

它是一种简单移位密码,使用 0 至 26 的整数密钥,让字母在字母表中移动相应位数。由于模运算,密钥 0 与 26 都保持输入不变。

通常写作 ROT 加密钥,最常见的是 ROT13。

拉丁字母表上的 ROT13 对应如下:

Plain:  abcdefghijklmnopqrstuvwxyz
Cipher: nopqrstuvwxyzabcdefghijklm

相比只有一种替换方式的 Atbash,它允许 0 至 26 共 27 个输入密钥,但 0 与 26 等价且不改变文本,只有 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,就还原为前者。