diff --git a/HOP 1.0 - decode.py b/HOP 1.0 - decode.py new file mode 100644 index 0000000..b567eed --- /dev/null +++ b/HOP 1.0 - decode.py @@ -0,0 +1,65 @@ +import base64 +ciphertext=input("Enter message to decode: ") +steponel = list(ciphertext) +stepone = "" +for i in range(len(steponel)-1): + stepone=stepone+steponel[i] +steptwo = stepone.encode('utf-8') +steptwob = base64.a85decode(steptwo) +steptwoc = steptwob.decode('utf-8') +def vigenere_dec(cipher,key): + alphabet = "abcdefghijklmnopqrstuvwxyz0123456789" + input_string = "" + dec_key = "" + dec_string = "" + dec_key = key + dec_key = dec_key.lower() + input_string = cipher + input_string = input_string.lower() + string_length = len(input_string) + expanded_key = dec_key + expanded_key_length = len(expanded_key) + while expanded_key_length < string_length: + expanded_key = expanded_key + dec_key + expanded_key_length = len(expanded_key) + key_position = 0 + for letter in input_string: + if letter in alphabet: + position = alphabet.find(letter) + key_character = expanded_key[key_position] + key_character_position = alphabet.find(key_character) + key_position = key_position + 1 + new_position = position - key_character_position + if new_position > 35: + new_position = new_position + 36 + new_character = alphabet[new_position] + dec_string = dec_string + new_character + else: + dec_string = dec_string + letter + return(dec_string) +def stepfour(stepthree): + stepthree=str(int(stepthree,36)) + test = list(stepthree) + if len(test)%3==1: + stepthree="00"+stepthree + if len(test)%3==2: + stepthree="0"+stepthree + stepthreel = list(stepthree) + stepfourl = [""]*int((float(len(stepthreel))/3)) + k = 0 + while k < len(stepthreel)-2: + stepfourl[int(k/3)] = stepthreel[k] + stepthreel[k+1] + stepthreel[k+2] + k = k + 3 + for j in range(len(stepfourl)): + temp = stepfourl[j] + temp = int(temp) + temp = chr(temp) + stepfourl[j] = temp + stepfour="" + for l in range(len(stepfourl)): + stepfour = stepfour + stepfourl[l] + return(stepfour) +key = input("Enter encryption key: ") +stepthree = vigenere_dec(steptwoc, key) +stepfour = stepfour(stepthree) +print("Your decoded message: "+stepfour) \ No newline at end of file diff --git a/HOP 1.0 - encode.py b/HOP 1.0 - encode.py new file mode 100644 index 0000000..38669d3 --- /dev/null +++ b/HOP 1.0 - encode.py @@ -0,0 +1,56 @@ +import base64 +plaintext = input("Enter message to encode: ") +def b36_encode(i): + if i < 0: return "-" + b36_encode(-i) + if i < 36: return "0123456789abcdefghijklmnopqrstuvwxyz"[i] + return b36_encode(i // 36) + b36_encode(i % 36) +def stepone(plaintext): + magicasciipowers = list(plaintext) + numbersgohere = [""]*len(magicasciipowers) + for i in range(len(magicasciipowers)): + temp = magicasciipowers[i] + temp = ord(temp) + if (temp<100): + numbersgohere[i]="0"+str(temp) + else: + numbersgohere[i]=str(temp) + numbers = "" + for i in range(len(numbersgohere)): + numbers=numbers+numbersgohere[i] + return(int(numbers)) +def vigenere_enc(stepone,key): + alphabet = "abcdefghijklmnopqrstuvwxyz0123456789" + input_string = "" + enc_key = "" + enc_string = "" + enc_key = key + enc_key = enc_key.lower() + input_string = stepone + input_string = input_string.lower() + string_length = len(input_string) + expanded_key = enc_key + expanded_key_length = len(expanded_key) + while expanded_key_length < string_length: + expanded_key = expanded_key + enc_key + expanded_key_length = len(expanded_key) + key_position = 0 + for letter in input_string: + if letter in alphabet: + position = alphabet.find(letter) + key_character = expanded_key[key_position] + key_character_position = alphabet.find(key_character) + key_position = key_position + 1 + new_position = position + key_character_position + if new_position > 35: + new_position = new_position - 36 + new_character = alphabet[new_position] + enc_string = enc_string + new_character + else: + enc_string = enc_string + letter + return(enc_string) +key=input("Enter encryption key: ") +steptwo = vigenere_enc(b36_encode(stepone(plaintext)),key) +steptwob = steptwo.encode('utf-8') +stepthree = base64.a85encode(steptwob) +stepthreeb = stepthree.decode('utf-8') +print("Your encoded message: "+str(stepthreeb)+"3") \ No newline at end of file