就当为CSDN这方面的python开源做点贡献哈哈哈
移位密码
-
算法原理
- python代码
#移位密码
class ShiftCipher:
global d
d=dict(zip(''.join(chr(i) for i in range(97,123)),list(range(0,26))))#字母表
def __init__(self,k:int):
self.k=k;#k为移位数
def encrypt(self,m:str):#加密
m=m.replace(' ','')
#明文m,字符串形式
mn=[]#储存明文模26余数
for mv in m:mn.append(d[mv])
for i in range(0,len(mn)):mn[i]=(mn[i]+self.k)%26#移位
s=''
for n in mn:s+=str(list(d.keys())[list(d.values()).index(n)])
print('The ciphertext is:',s.upper())
def decrypt(self,m:str):#解密
#密文m,字符串形式
m=m.lower()
mn=[]#储存密文模26余数
for mv in m:mn.append(d[mv])
for i in range(0,len(mn)):mn[i]=(mn[i]-self.k)%26#逆移位
s=''
for n in mn:s+=str(list(d.keys())[list(d.values()).index(n)])
print('The plaintext is:',s.upper())
-
实现过程
自定义移位密码位移数(5)加密一段英文(‘informationsecurityandcryptography’)并对得到的密文解密: