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 melif ord(m)>=123-key or 91-key&l
·
凯撒加密是最简单的加密算法,代码如下 :
def kaisa(m):#加密函数
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=''
感谢大家观看。
更多推荐
已为社区贡献1条内容
所有评论(0)