凯撒加密算法
真是好奇心害死猫!!!
今天周六闲着没事,看到一个up主在说凯撒加密,觉得非常有意思,就用python实现了一下,确实挺好玩的,分享给大家!
凯撒加密算法:凯撒加密法,或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。
它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。
实现思路:首先是根据定义一个英文字母列表作为加密解密的密码母本,统计明文或密文列表的长度,从头到末开始索引,
利用index方法返回明文/密文元素在密码母本的位置,根据位置进行加密解密计算,定义一个容器来放置每次求出的字符,
最后组成明文或密文进行输出
功能:
1、输入输出
2、选择mode(加密/解密)
3、选择加密方向
4、选择位移值即加密的量
基本语法:
1、输入,输出语句
2、控制语句:条件语句,循环语句
3、序列元素
4、列表的读取,方法等
代码片段
mode = input("请问你要加密还是解密(加密请输入:e,解密请输入:d)?")
direction = input("请选择你的加密方向(r:右移,l:左移)")
algorithm = int(input("请选择密码算法(即加密位数):"))
#这里定义了一个列表元素,相当于一个密码本供下面切片访问
translation = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r'
,'s','t','u','v','w','x','y','z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
if direction =='r':
if mode == 'e':
clearText = list(input("请输入你要加密的明文:"))
length = int(len(clearText))#统计明文列表的长度作为判断条件
SSL1 = ''#定义空字符,作为密文的容器
i=0#定义索引值
while i<=length-1:
clearvalue = clearText[i]
valuePlace = int(translation.index(clearvalue))
#返回元素出现的位置
solitude = translation[int(valuePlace + algorithm)]#通过位置加上密位数索引出加密字符
SSL1 += solitude
i += 1
print('你的密文是:%s' % SSL1)
elif mode == 'd':
cipherText = list(input("请输入你要解密的密文:"))
length = int(len(cipherText))
SSL2 = ''
i=0
while i<=length-1:
nightvalue = cipherText[i]
valuePlace = int(translation.index(nightvalue))
solitude = translation[int(valuePlace - algorithm)]
SSL2 += solitude
i += 1
print('你的明文是:%s' % SSL2)
else:
print("请检查你的输入")

最后,不得不说古人还是非常有智慧的,凯撒大帝应该是个数学家,站在前人的肩膀上果然看的更远!
本文介绍了凯撒加密算法,并分享了使用Python实现该算法的代码片段,通过实例展示了算法的趣味性和古人的智慧。
1620

被折叠的 条评论
为什么被折叠?



