diff --git a/HOP 1.0.1 - decode.py b/HOP 1.0.1 - decode.py deleted file mode 100644 index 29ca651..0000000 --- a/HOP 1.0.1 - decode.py +++ /dev/null @@ -1,70 +0,0 @@ -#1.0: -#Released HOP Decode -#1.0.1: -#Updated version number to match HOP Encode -#Added changelog -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.1.1.py b/HOP 1.0.1.1.py new file mode 100644 index 0000000..682f9ce --- /dev/null +++ b/HOP 1.0.1.1.py @@ -0,0 +1,153 @@ +#Changelog: + #HOP Encode + #1.0: + #Released HOP Encode + #1.0.1: + #Updated version number + #Added optimize for Discord option + #Added changelog + #Hop Decode + #1.0: + #Released HOP decode + #1.0.1: + #Updated version number to match that of HOP Encode + #Added changelog + +import base64 +def decode(ciphertext, key): + 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) + stepthree = vigenere_dec(steptwoc, key) + stepfour = stepfour(stepthree) + output = "Your decoded message: "+stepfour + return output; +def encode(plaintext, key): + 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) + steptwo = vigenere_enc(b36_encode(stepone(plaintext)),key) + steptwob = steptwo.encode('utf-8') + stepthree = base64.a85encode(steptwob) + stepthreeb = stepthree.decode('utf-8') + stepfour = str(stepthreeb)+"h" + answer = False + while answer == False: + discord = input("Optimize for discord? y or n: ") + if(discord=="y"): + answer = True + stepfour = "```"+str(stepthreeb)+"h```" + elif(discord=="n"): + answer = True + output="Your encoded message: "+stepfour + return output +var = input("Encode or Decode? 1 for encode, 2 for decode: ") +if (var=="1"): + ciphertext = input("Enter message to encode: ") + key = input("Enter encryption key: ") + print(encode(ciphertext, key)) +elif (var=="2"): + plaintext = input("Enter message to decode: ") + key = input("Enter encryption key: ") + print(decode(plaintext, key))