字母倒序替换密码

实践练习C++17

Atbash 是一种古老的单表替换密码:第一个字母与最后一个字母对应,第二个字母与倒数第二个字母对应,以此类推。它适合练习字符映射,但不适合保护真实敏感信息。

任务说明

实现起源于中东的古老 Atbash 密码。

这是一种简单替换密码,把字母表反转:第一个字母替换为最后一个,第二个替换为倒数第二个,依此类推。

拉丁字母表的对应关系如下:

Plain:  abcdefghijklmnopqrstuvwxyz
Cipher: zyxwvutsrqponmlkjihgfedcba

只有一种可能的密钥,而且是单表替换,因此它很容易破解,不过在古代可能不算严重问题。

密文按固定长度分组,传统上每组 5 个字符;数字保持不变,标点删除。这样可以隐藏单词边界,增加猜测难度。所有字母转为小写。

示例

  • 编码 test 得到 gvhg。
  • 编码 x123 yes 得到 c123b vh。
  • 解码 gvhg 得到 test。
  • 解码 gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt 得到 thequickbrownfoxjumpsoverthelazydog。