栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python实现凯撒加密及解密算法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python实现凯撒加密及解密算法

凯撒加密是最简单的加密算法,代码如下 :

def kaisa(n):#加密函数
 for m in n:
      if m==" ":
       return ' '
      elif 97<=ord(m)<123-key or 65<=ord(m)<91-key:#位移值不超过最后一个z字母
          m=chr(ord(m)+key)
          return m
      elif ord(m)>=123-key or 91-key<=ord(m)<91:
       m=chr(ord(m)+key-26)
       return m
out=''
#求解算法
while 1:
    plaintext=input('请输入明文:')
    if plaintext=='退出':
        break
    key=eval(input('请输入位移值:'))
    for i in list(map(kaisa,plaintext)):
     out+=i
    print('加密结果为:',out)

代码比较简单,主要思路就是将明文全都往后推几个字母变成密文,故可以通过穷举的方式列出所有可能的明文结果,代码如下:

#破解凯撒加密

def jiema(m):
 for i in m:
     if i ==' ':
        return " "
     elif 97+key<=ord(m)<123 or 65+key<=ord(m)<92:
        m=chr(ord(m)-key)
        return m
     elif 97<=ord(m)<97+key or 65<=ord(m)<65+key:
        m=chr(ord(m)-key+26)
        return m
m=input('请输入密文:')
out=''
for key in range(1,27):
    for n in list(map(jiema,m)):
     out = out + str(n)
    print('第%d个可能的结果是%s'%(key,out))
    out=''

感谢大家观看。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/879023.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号