def encrypt(input_string: str, key: int) -> str: result = "" for x in input_string: if not x.isalpha(): result += x elif x.isupper(): result += chr((ord(x) + key - 65) % 26 + 65) elif x.islower(): result += chr((ord(x) + key - 97) % 26 + 97) return result def decrypt(input_string: str, key: int) -> str: result = "" for x in input_string: if not x.isalpha(): result += x elif x.isupper(): result += chr((ord(x) - key - 65) % 26 + 65) elif x.islower(): result += chr((ord(x) - key - 97) % 26 + 97) return result def brute_force(input_string: str) -> None: key = 1 result = "" while key <= 94: for x in input_string: indx = (ord(x) - key) % 256 if indx < 32: indx = indx + 95 result = result + chr(indx) print(f"Key: {key}\t| Message: {result}") result = "" key += 1 return None def main(): while True: print(f'{"-" * 10}\n Menu\n{"-" * 10}') print(*["1.Encrpyt", "2.Decrypt", "3.BruteForce", "4.Quit"], sep="\n") choice = input("What would you like to do?: ") if choice not in ["1", "2", "3", "4"]: print("Invalid choice, please enter a valid choice") elif choice == "1": input_string = input("Please enter the string to be encrypted: ") key = int(input("Please enter off-set between 0-25: ")) if key in range(1, 95): print(encrypt(input_string.lower(), key)) elif choice == "2": input_string = input("Please enter the string to be decrypted: ") key = int(input("Please enter off-set between 1-94: ")) if key in range(1, 95): print(decrypt(input_string, key)) elif choice == "3": input_string = input("Please enter the string to be decrypted: ") brute_force(input_string) main() elif choice == "4": print("Goodbye.") break if __name__ == "__main__": main()