diff --git a/hashes/enigma_machine.py b/hashes/enigma_machine.py index d95437d12c34..30ce57e78c5c 100644 --- a/hashes/enigma_machine.py +++ b/hashes/enigma_machine.py @@ -1,3 +1,11 @@ +""" + +Note: + This algorithm has memory persistence. + So multiple runs on the same runtime will carry junk and scramble the result! +""" + + alphabets = [chr(i) for i in range(32, 126)] gear_one = list(range(len(alphabets))) gear_two = list(range(len(alphabets))) @@ -40,7 +48,22 @@ def engine(input_character): rotator() -if __name__ == "__main__": +def encode_or_decode(message, token): + """ + + >>> encode_or_decode("hello", 3) + (['/', '0', "'", '%', ' '], 3) + + """ + + for _ in range(token): + rotator() + for j in message: + engine(j) + return code, token + + +def menu(): decode = list(input("Type your message:\n")) while True: try: @@ -57,3 +80,9 @@ def engine(input_character): f"\nYour Token is {token} please write it down.\nIf you want to decode " "this message again you should input same digits as token!" ) + + +if __name__ == "__main__": + import doctest + + doctest.testmod()