实现 Atbash 密码,这是一种起源于中东的古老加密系统。
Atbash 密码是一种简单的替换密码,它把字母表中的所有字母顺序颠倒过来,得到一个倒序的字母表。 第一个字母替换为最后一个字母,第二个替换为倒数第二个,依此类推。
拉丁字母表的 Atbash 密码如下:
Plain: abcdefghijklmnopqrstuvwxyz
Cipher: zyxwvutsrqponmlkjihgfedcba
这是一种非常弱的密码,因为它只有一种可能的密钥,而且只是简单的单表替换密码。 不过,在它诞生的年代,这也许并不算问题。
密文按固定长度分组写出,传统的分组大小是 5 个字母,数字保持不变,标点符号则被去掉。 这样做是为了让人更难根据单词边界猜出内容。 所有文本都编码为小写字母。
test 编码得到 gvhg
x123 yes 编码得到 c123b vh
gvhg 解码得到 test
gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt 解码得到 thequickbrownfoxjumpsoverthelazydog
String.lowercase
根据你安装的 OCaml 版本,使用String.lowercase可能并不被推荐。
从 4.03.0 版本开始,String.lowercase已被弃用,应改用String.lowercase_ascii。
所以不要这样写
String.lowercase "Hello, World!"
而要这样写
String.lowercase_ascii "Hello, World!"
更多实用函数请参阅 String 文档。