APP下载

Python字符映射实现凯撒加密

2021-07-01牟晓东

电脑报 2021年8期
关键词:方法

牟晓东

Python提供了比较丰富的字符串常用方法,其中的maketrance()和translate()是一对专门用来生成字符映射表和根据映射表进行字符转换的方法,可以同时处理多个不同的字符,经常应用于字符串的加密和解密。

1.字符映射加密的简单应用举例

maketrance()方法一般用于创建字符映射的转换表,两个参数为长度一致的字符串,作用是将前面字符串中的字符转换成后面字符串中的对应字符;而translate()方法则是配合maketrance()方法实现字符串内容的替换。在此编写一个简单的英文加密小程序。

首先建立变量table并赋值为“‘.maketrans(‘abcdefg,‘nmlkjih)”,作用是利用建立maketrance()方法来建立字符映射表,把第一个参数“abcdefg”中的各个字符依次替换为“nmlkjih”中的各个字符,即a映射为n、b映射为m、c映射为l……接着建立变量s,其值为使用input获取用户从键盘输入的一句英文;然后建立变量miwen,其值为“s.translate(table)”,根据之前使用maketrance()方法创建的table映射表完成对应字符的一一映射;最后,使用print语句输出变量miwen,即“加密后的密文”。

运行程序,按照提示输入经典测试句:“The quick brown fox jumps over a lazy dog.”(这句话包含全部字母),得到加密后的密文结果:“Thj quilk mrown iox jumps ovjr n lnzy koh.”(如图1)。原句中的“abcdefg”七个字母都被分别替换为“nmlkjih”,实现了加密。

2.字符映射的“非完全”解密法

既然利用maketrance()方法的加密是将两个字符串进行映射替换,那么理论上可以将两个字符串位置互换来实现解密。即table变量的值变成“‘.maketrans(‘nmlkjih,‘abcdefg)”,其他的内容基本不变,只修改一下对应的提示信息。在“请输入待解密的一句英文:”提示后面输入刚刚得到的加密句子:“Thj quilk mrown iox jumps ovjr n lnzy koh.”,回车后得到解密后的原文是:“Tge qufcd browa fox eubps over a cazy dog.”,并未还原最初的经典测试句子(如图2)。

登录APP查看全文

猜你喜欢

方法
中医特有的急救方法
高中数学教学改革的方法
化学反应多变幻 “虚拟”方法帮大忙
变快的方法
学习方法
用对方法才能瘦
最有效的简单方法
四大方法 教你不再“坐以待病”!
赚钱方法
捕鱼