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

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

    

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值