AMS303/Final Project/decode.py
2022-05-23 05:57:24 -04:00

47 lines
1.2 KiB
Python

import sys
from project_helper import read_from_file
def decode(ciphertexts, passphrase1, passphrase2):
alphabet = ['' for _ in range(26)]
index = 0
for i in range(len(passphrase1)):
if passphrase1.find(passphrase1[i]) == i:
alphabet[index] = passphrase1[i]
index += 1
length = index
for i in range(26):
if passphrase1.find(chr(ord('A') + i)) == -1:
alphabet[index] = chr(ord('A') + i)
index += 1
alphabet1 = ['' for _ in range(26)]
for i in range(26):
j = i // length
k = i % length
index = 0
for l in range(k):
index += (26 // length + 1) if l < 26 % length else (26 // length)
index += j
alphabet1[index] = alphabet[i]
count = 0
ans = ""
for char in ciphertexts:
if char == ' ':
print(" ", end='')
continue
ans += alphabet1[(ord(char) - ord(passphrase2[count % len(passphrase2)]) + 26) % 26]
count += 1
return ans
if __name__ == "__main__":
if len(sys.argv) == 1:
print("Usage: %s <path to file>" % sys.argv[0])
exit(-1)
print(decode(read_from_file(sys.argv[1]), "HANDSOME", "HOLLY"))