天天看點

移位密碼及其python實作

就當為CSDN這方面的python開源做點貢獻哈哈哈

移位密碼

  • 算法原理

    移位密碼及其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’)并對得到的密文解密:

    移位密碼及其python實作