就當為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’)并對得到的密文解密: