加密使得('w','f')返回'b'。如何编写代码的反转来解密它,以便('b','f')返回'w'?
def char_encrypt(plaintextchar, keychar):
result= chr(ord('a') + ((ord(plaintextchar) - ord('a')) + (ord(keychar) - ord('a'))) % 26)
ciphertextchar = result
return ciphertextchar
答案 0 :(得分:1)
这是标准的rot13东西......它可能最适合制作给定角色的翻译表
from string import maketrans,ascii_lowercase as lc,ascii_uppercase as uc
def create_transtab(key,decode=False):
offset = ord(key)-ord('a')
data_plaintext = lc+ uc
data_shift = lc[offset:]+lc[:offset] + uc[offset:] + uc[:offset]
if not decode:
return maketrans(data_plaintext,data_shift)
return maketrans(data_shift,data_plaintext)
def encode_text(my_text,key):
tab = create_transtab(key)
return my_text.translate(tab)
def decode_text(my_text,key):
tab = create_transtab(key,decode=1)
return my_text.translate(tab)
print encode_text("w","f")
print decode_text("b","f")