python 实现凯撒密码加解密
程序员文章站
2022-07-09 13:46:39
...
凯撒密码
来自 百度百科凯撒密码
在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。这个加密方法是以罗马共和时期恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系。
使用python3实现 凯撒加解密
加密函数
# Caesar
class Caesar:
def encryption(self,x,num1):
li = [chr(i) for i in range(65,91)]
ls = [chr(i) for i in range(97,123)]
li1 = []
for i in x:
if i in ls and num1 <= 25:
s = ls.index(i)
if s+num1 >= len(ls[s:]):
li1.append(ls[num1-len(ls[s:])])
else:
li1.append(ls[s+num1])
elif i in li and num1 <= 25:
s1 = li.index(i)
if s1+num1 > len(li[s1:]):
li1.append(li[num1-len(li[s1:])])
else:
li1.append(li[s1+num1])
else:
li1.append(i)
if len(li1) > 0:
return ''.join(li1)
return x
解密函数
# decrypt
def decrypt(self,x,num1):
li = [chr(i) for i in range(65,91)]
ls = [chr(i) for i in range(97,123)]
li1 = []
for i in x:
if i in ls and num1 <= 25:
s = ls.index(i)
li1.append(ls[s+(-num1)])
elif i in li and num1 <= 25:
s1 = li.index(i)
li1.append(li[s1+(-num1)])
if len(li1) > 0:
return ''.join(li1)
return x