解密/加密

2024-06-08 12:54:29 发布

您现在位置:Python中文网/ 问答频道 /正文

这会加密,以便('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

Tags: 代码returndefresultencryptcharkeycharchr
1条回答
网友
1楼 · 发布于 2024-06-08 12:54:29

这是标准的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")

相关问题 更多 >