<强> 强>
凯撒密码是一种非常古老的加密方法,相传当年凯撒大地行军打仗时为了保证自己的命令不被敌军知道,就使用这种特殊的方法进行通信,以确保信息传递的安全。他的原理很简单,说到底就是字母于字母之间的替换。
<强> 强>
应用Python程序设计语言的相关知识,理解并实现凯撒密码加解密过程。
任务1:运行导入,观察代码运行结果;查看这个。py源文件(可以在Python安装目录下的自由文件夹下找到),分析它的原理。
任务2:实现凯撒密码加解密过程。
Python 3.8
实验步骤
在实验的第一部分,观察导入该的运行结果,分析原理,
在实验的第二部分,实现凯撒加解密过程。
实验代码及运行结果
运行结果
原理分析
观察this.py文件:
可见,该段代码其实就是一个凯撒解密过程c取元组中的两个值65年和97年,分别对应的ASCII码中的“一个”和“一个”。以从65年开始的循环为例,我从0到25日,每一次循环,d空空(i + c)]=科((i + 13) % 26 + c)这句代码都在更新维列表中的键值对,从0开始到12日定义了从' A ': ' N ', ' B ': ' O '一直到“Z”:“M”这样一系列键值对。
由于对26取余,从我=13开始,这个过程反转了过来,一直到i=25日定义了从“M”:“Z”到“N”:“一”的键值对。
在c=97的循环中执行同样的操作,得到小写字母~ z的映射。
于是在字典d中形成了52个这样一一对应的键值对。
最后一句打印(" " . join ([d。得到(c s c, c)))),调用得到()输入为字典d的键,输出为其对应的值,如果在字典d中没有这样的键值对,例如标点,空格,则返回其本身,最后通过加入()形成新的字符串。
<强> 强>
实验代码
def getMode (): 而1: 打印(请选择加密或解密模式:') 打印('加密e ') 打印(“解密d ') 模式=输入() 如果在“e d”模式。分割(' ',1): 恢复模式 其他: 打印(“请重新输入:“) def getMessage (): 打印(“请输入要执行的信息:') 返回输入() def getKey (): 打印(“请输入密钥:“) 关键=int(输入()) 返回键 def加密(模式、消息键): 如果模式==' d ': 关键=关键 d={} 为c (65、97): 因为我在范围(26): d空空(i + c)]=科((i +键)% 26 + c) 打印(“结果为:”) 打印(" " . join ([d。获得(c, c) c在消息]))#这里套用了this.py文件 模式=getMode () 消息=getMessage () 关键=getKey () 加密(模式、消息键)
运行结果
到此这篇关于利用python实现凯撒密码加解密的文章就介绍到这了,更多相关python凯撒密码加解密内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!