【发布时间】:2019-06-27 12:35:44
【问题描述】:
我正在尝试做一个 Vigenere Cipher 解密器。该消息使用我编写的当前代码解密。但是,它没有考虑标点符号和空格。我如何让它考虑这两个组件?以下是我的代码:
vigenered_message = 'dfc jhjj ifyh yf hrfgiv xulk? vmph bfzo! qtl eeh gvkszlfl yyvww kpi hpuvzx dl tzcgrywrxll!'
keyword = 'friends'
def vigenere_decrypt(encrypted_vigener, keyword):
keyword_length = len(keyword)
keyword_as_int = [ord(i) for i in keyword]
encrypted_vigener_int = [ord(i) for i in encrypted_vigener]
plaintext = ''
for i in range(len(encrypted_vigener_int)):
value = (encrypted_vigener_int[i] - keyword_as_int[i % keyword_length]) % 26
plaintext += chr(value + 65)
return plaintext
print(vigenere_decrypt(vigenered_message, keyword))
这个偏移量应该是:'你能解码这个吗?干得好! 你正在成为密码学专家'
【问题讨论】:
标签: python encryption cryptography caesar-cipher vigenere