凯撒密码加密和解密算法的实现

import numpy as np

#加密函数

def Encrypt(P,key):

   P= list(P)

   P= map(ord,P)

   P= np.array(P)

  P=P-ord('a')

   C= (P + key)%26

   C= C + ord('A')

   C= list(C)

   C= map(chr,C)

  return ''.join(C)

 

#解密函数

def Decrypt(C,key):

    C=map(ord,C)

    C=np.array(C)

    C=C -ord('A')

   p=(C-key)%26

   p=p+ord('a')

    p= list(p)

    p= map(chr,p)

   return''.join(p)

 

 

#加密请按E,解密请按D

user_input=raw_input('E or D:');

#输入合法性判断

while(user_input!='E' and user_input!='D'):

   user_input=raw_input('Input error, please reenter:')   

   

key=raw_input('Please enter the key:') 

while(int(key.isdigit()==0)):

   key=raw_input('Input error,key is number, please reenter:')   

 

if user_input=='E':

#加密过程

   P=raw_input('Please enter a Plain Text:')

   C=Encrypt(P,int(key))

   print 'Ciphertext:%s' % C  

else:

#解密过程  

   C=raw_input('Please enter a Ciphertext:')

   P=Decrypt(C,int(key))

   print 'Plain Text:%s' % P

    

你可能感兴趣的:(Caesar加解密)