python應用_愷撒密碼加密與解密,python加密與解密
1.它是一種替換加密的技術,明文中的所有字母都在字母表上向後(或向前)按照一個固定數目進行位移後被替換成密文。例如,當位移量是3的時候,所有的字母A將被替換成D,B變成E,以此類推。這個加密方法是以愷撒的名字命名的,當年愷撒曾用此方法與其將軍們進行聯絡。
2.ASCII表:
2.具體實現:
class Caesar: def __init__(self,a,b):#初始化,接受程式需要的類型 self.pass1=a self.type1=b def jiami(self,a):#加密的程式 z=(ord(a)-97+self.pass1)%26+97#用ascii碼值來完成移動 return chr(z) def jiemi(self,a):#解密的程式 z=(ord(a)-97-self.pass1)%26+97 if z<97: z=z+26 return chr(z) def show(self,x):#顯示結果 str='' if self.type1==0:#加密的時候進入 for i in range (len(x)): x=x[:i]+self.jiami(x[i])+x[i+1:] for i in range (len(x)): str=str+x[i] print (str) else:#解密的時候進入 for i in range (len(x)): x=x[:i]+self.jiemi(x[i])+x[i+1:] for i in range (len(x)): str=str+x[i] print (str)if __name__=='__main__':#測試程式 a=int(input('please input the pass (小於26!0:結束):')) while a: b=int(input('please input the type (0:加密;1:解密:)')) x=input('please input str:') user=Caesar(a,b) user.show(x) a=int(input('please input the pass (小於26!0:結束):'))
3.實驗結果: