Message Encyption and Decryption
import string
alpha = string.ascii_lowercase
int_alpha = {i:c for i, c in enumerate(alpha)}
alpha_int = {c:i for i, c in enumerate(alpha)}
def get_key(encode, real):
code = 0
key = []
for i in range(0, len(real)):
target = encode[i].lower()
start = real[i].lower()
if not target.isalpha():
continue
while True:
if target == start:
key.append(code)
code = 0
break
else:
cur_alpha_int = alpha_int[start]
next_alpha = int_alpha[(cur_alpha_int + 1) % 26]
start = next_alpha
code += 1
return key
def increment_char(c, by):
cur_c = c.lower()
for i in range(0, by):
cur_alpha_int = alpha_int[cur_c]
next_alpha = int_alpha[(cur_alpha_int - 1) % 26]
cur_c = next_alpha
if c.isupper():
return cur_c.upper()
else:
return cur_c
def decrypt(encrypted_message, key):
decrpyed = []
key_iter = 0
for c in encrypted_message:
if not c.isalpha():
decrpyed.append(c)
else:
by = key[key_iter % len(key)]
decryp_c = increment_char(c, by)
decrpyed.append(decryp_c)
key_iter += 1
return ''.join(decrpyed)
key = get_key(encode = "Bjj rwkc", real = "The quic")
print(decrypt("Bjj rwkcs dwpyp fwz ovors wxjs vje tcez fqg", key)) # "The quick brown fox jumps over the lazy dog"Last updated