很简单,让我们看看它是如何工作的。首先,通过减去密钥来获得加密的消息。enc = msg + key (mod 127)
我们如何获得原始信息?很简单,两边都减去键enc - key = msg + key - key (mod 127)
我们得到:enc - key = msg (mod 127)
有关更多详细信息,请参考Modular arithmetic,我认为它应该属于group/field/ring之一。我不是数学专家,你可以在Number theory找到更深层次的理论知识。以下是经过改进的代码:def encrypt(key, msg):
encryped = []
for i, c in enumerate(msg):
key_c = ord(key[i % len(key)])
msg_c = ord(c)
encryped.append(chr((msg_c + key_c) % 127))
return ''.join(encryped)
def decrypt(key, encryped):
msg = []
for i, c in enumerate(encryped):
key_c = ord(key[i % len(key)])
enc_c = ord(c)
msg.append(chr((enc_c - key_c) % 127))
return ''.join(msg)
if __name__ == '__main__':
key = 'This_i