我做了一个替换密码,它生成随机字典,用它替换纯文本字符。
这是代码:
import random
alphabets=' ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789~!@#$%^&*()_+|:"<>-=[];,.?'
class HCPyEncoder:
def encode(self,plaintext):
length=len(alphabets)
arr=range(0,length)
random.shuffle(arr)
pad,cipher="",""
dictionary={}
for i in range(0,length):
pad=pad+alphabets[arr[i]]
dictionary[alphabets[i]]=alphabets[arr[i]]
for i in plaintext:
if i in dictionary:
i=dictionary[i]
cipher=cipher+i
return cipher,pad
def decode(self,ciphertext,pad):
dictionary={}
plaintext=""
for i in range(len(pad)):
dictionary[pad[i]]=alphabets[i]
for i in ciphertext:
if i in dictionary:
i=dictionary[i]
plaintext=plaintext+i
return plaintext
encoder=HCPyEncoder()
ciphertext,pad=encoder.encode("Psycho Coder")
plaintext=encoder.decode(ciphertext,pad)
print "Ciphertext : ",ciphertext
print "Plaintext : ",plaintext
但问题是每次它都会生成一个新的密钥或键盘,所以如果秘密消息发送给某人,它就无法恢复。
所以我想给它一个固定的替换字典,而不是随机的,它将用于生成每个密文。
我是python的初学者,所以请帮我写代码。