HOP is an obsfucation program that applies several layers of encoding. I am working on improving security, but right now the most secure version is vigenere, so don't use this to secure the nuclear codes.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
HOP/HOP 1.0.1 - decode.py

70 lines
2.2 KiB

#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)