python如何实现凯撒密码

  介绍

小编给大家分享一下python如何实现凯撒密码,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!

在密码学中,凯撒密码(或称恺撒加密,恺撒变换,变换加密)是一种最简单且最广为人知的加密技术。它是一种替换加密的技术。这个加密方法是以恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系。恺撒密码通常被作为其他更复杂的加密方法中的一个步骤,例如维吉尼亚密码。恺撒密码还在现代的ROT13系统中被应用。但是和所有的利用字母表进行替换的加密技术一样,恺撒密码非常容易被破解,而且在实际应用中也无法保证通信安全。

尽管是最简单的加密技术,但那该怎么在python中如何现实呢?

代码如下:

def 问():   ,while 真正的:   打印才能(“Welcome 用你来了!”)   打印才能(“你还要choose  mode :, (e),加密或解密(d),),, #有解密和加密模式   打印才能(“If 你choose  encrypt ,你还要lock 从而消息!“),#加密提示   打印才能(“If 你choose  decrypt ,你还要unlock 从而消息!“),#解密提示   打印才能(“If 你wanna  exit ,, input  & # 39;提问# 39;! !“),,,,,#退出提示   mode =,才能输入(“选择:“).lower(),,,,,,,, #将输入的模式进行变换(从大写变小写,小写部分不变)   if 才能;mode 拷贝& # 39;encrypt  e  decrypt  d 提问# 39;.split():,,,,, #当模式是被要求的encrypt  e(加密模式)decrypt  d(解密模式),q(退出)时进行下一步操作   ,,#打印(模式),,,,,,,,,,,#打印输入的模式   ,,return  mode ,,,,,,,,,,, #将模式的值作为返回值   其他的才能:   ,才能打印(& # 39;Please  input  right 选项! ! & # 39;),,,,,#输出提示         def  getKey(模式):   ,key =, 0,,,,,,,,,,,,,,, #设置默认的关键   ,while  key  & lt;=, 0,趁机key 祝辞=,26日:,,,,,,,,,#限制关键的范围在(1 - 25以内的数)   尝试才能:,,,,,,,,,,,,,,#这里进行异常处理,将非整数类型的输入进行错误提示打印   ,,key =, int(输入(“Please  input  your 关键:(1-26)“))   除了才能:   ,才能打印(“Please  input  correct 数量! !“)   ,#对解密的密匙进行变换==,if  mode  & # 39; d # 39;,趁机mode ==, & # 39;解密# 39;:   key 才能=关键   return 关键      def  getMessage(重要):   ,#输入信息   ,while 真正的:   informetion =,才能输入(“Please  input 消息! !“),,,,#输入要解密或者加密的信息   if 才能informetion.isalpha():,,,,,,,,, #判断输入的字符串是否为纯字母   ,才能休息   其他的才能:   ,才能打印(“Please  input  continuous 字符! ! !“),,,#输错提示=,message  & # 39; & # 39;,,,,,,,,,,,,, #设置输出的初始值   ,for  x  informetion拷贝:,,,,,,,,,,,#将输入信息里的进行逐一字母加密/解密   num 才能=,奥德(x),,,,,,,,,,,, #将单一字符通过ascii表进行转换,将字母转换为数字   num 才能+=,key ,,,,,,,,,,,, #加上关键的值进行下列运算   if 才能x.isupper():,,,,,,,,,,,, #判断是否是大写字母   ,,if  num 祝辞,奥德(& # 39;z # 39;):,,,,,,,,,, #对超出ascii对应数值的范围进行处理   ,,,num  -=26   ,,,print(消息)   ,,elif  num  & lt;,奥德(& # 39;一个# 39;):   ,,,num  +=26   ,,,print(消息)   elif 才能x.islower():,,,,,,,,,,, #判断是否小写字母   ,,if  num 祝辞,奥德(& # 39;z # 39;):   ,,,num  -=26   ,,elif  num  & lt;,奥德(& # 39;一个# 39;):   ,,,num  +=26   message  +=,才能装备(num),,,,,,,,,,, #将单一字符通过ascii表进行转换,将数字转换为字母   ,return  message ,,,,,,,,,,,, #返回消息的值   ,,   if  __name__==癬_main__":,,,,,,,,,,, #主程序=,mode 问(),,,,,,,,,,,,,#将问()返回值存于模式变量中==,if  mode  & # 39;提问# 39;:,,,,,,,,,,,,,#进行退出判断   打印才能(& # 39;欢迎! ! & # 39;)   ,其他的:   null   null   null

python如何实现凯撒密码