From b4d8e3c01b0c27bbfd7b043eb162c4756407aa85 Mon Sep 17 00:00:00 2001 From: Kenn Kitchen Date: Thu, 4 Sep 2025 12:51:05 -0400 Subject: [PATCH] Initial commit --- .idea/.gitignore | 8 +++ .idea/enigmaMachine.iml | 10 +++ .../inspectionProfiles/profiles_settings.xml | 6 ++ .idea/misc.xml | 7 ++ .idea/modules.xml | 8 +++ main.py | 65 +++++++++++++++++++ 6 files changed, 104 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/enigmaMachine.iml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 main.py diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/enigmaMachine.iml b/.idea/enigmaMachine.iml new file mode 100644 index 0000000..ebe9288 --- /dev/null +++ b/.idea/enigmaMachine.iml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..33d9f86 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..95adba5 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..06fcb48 --- /dev/null +++ b/main.py @@ -0,0 +1,65 @@ +import sys + +alphaBase = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz,. !=" + +def main(): + if len(sys.argv) < 6: + print("Usage: python script.py ") + + if sys.argv[5] == "e": + # first iteration + firstIterationResult = encode(int(sys.argv[1]), sys.argv[4]) + print(firstIterationResult) + + secondIterationResult = encode(int(sys.argv[2]), sys.argv[4]) + print(secondIterationResult) + + thirdIterationResult = encode(int(sys.argv[3]), sys.argv[4]) + print(thirdIterationResult) + else: + firstIterationResult = decode(int(sys.argv[1]), sys.argv[4]) + print(firstIterationResult) + + secondIterationResult = decode(int(sys.argv[2]), sys.argv[4]) + print(secondIterationResult) + + thirdIterationResult = decode(int(sys.argv[3]), sys.argv[4]) + print(thirdIterationResult) + + +def encode(offset, message): + print("Encoding!") + + resultMessage = "" + + for indexA in range(len(message)): + for indexB in range(len(alphaBase)): + if message[indexA] == alphaBase[indexB]: + location = indexB + offset + if location > (len(alphaBase) - 1): + location = location - (len(alphaBase) - 1) + resultMessage = resultMessage + alphaBase[location] + break + + return resultMessage + + +def decode(offset, message): + print("Decoding!") + + resultMessage = "" + + for indexA in range(len(message)): + for indexB in range(len(alphaBase)): + if message[indexA] == alphaBase[indexB]: + location = indexB - offset + if location < 0: + location = location + (len(alphaBase) - 1) + resultMessage = resultMessage + alphaBase[location] + break + + return resultMessage + + +if __name__ == "__main__": + main()