Compare commits

..

No commits in common. "main" and "v1.0.1-beta" have entirely different histories.

10 changed files with 141 additions and 302 deletions

View File

@ -1,42 +0,0 @@
---
name: Bug report
about: Something broke? Let us know here!
title: ''
labels: bug
assignees: ''
---
<!-- PLEASE MAKE SURE YOUR ISSUE DOESN'T ALREADY EXIST! -->
<!-- PLEASE ADD THE SECURITY LABEL IF THE BUG IS SECURITY RELATED! -->
**Issue Description**
A clear and concise description of what the bug is.
**System Details**
* HOP program (such as HOP.1.0.2.py)
* Python version (such as python 3.9)
* Platform name (such as repl.it)
**Steps To Reproduce**
Steps to reproduce the behavior. Should be easy to follow.
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Actual behavior**
A clear and concise description of what actually happened.
**Exception**
```
If the bug is an exception, enter it here.
```
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Additional context**
Add any other context about the problem here

View File

@ -1,25 +0,0 @@
---
name: Feature request
about: Something you don't like? Let us know here!
title: ''
labels: enhancement
assignees: ''
---
<!-- PLEASE MAKE SURE YOUR ISSUE DOESN'T ALREADY EXIST! -->
<!-- PLEASE ASSIGN A RELAVENT LABEL AS DICTATED IN CONTRUBUTING.MD! -->
**Problem**
Something you are missing or do not like about HOP. Be clear and concise.
**Preferred Solution**
Your preferred method of addressing this problem. Be specific. Go into detail on how this solution can be reached.
**Alternate Solutions**
List alternate solutions you considered and why you would rather do your preferred solution.
**Screenshots**
If applicable, add screenshots to help explain your solution.
**Additional context**
Add any other context about the feature request here.

View File

@ -1,28 +0,0 @@
---
name: Question
about: Something you're unsure about? Let us know here!
title: ''
labels: question
assignees: ''
---
<!-- PLEASE MAKE SURE YOUR ISSUE DOESN'T ALREADY EXIST! -->
<!-- ALWAYS TRY TO ANSWER A QUESTION YOURSELF IF POSSIBLE! -->
**Question**
What do you want to know? Be clear and concise.
**Self Research**
Explain what you have already tried to do before asking the question.
**System Details**
* HOP program (such as HOP.1.0.2.py)
* Python version (such as python 3.9)
* Platform name (such as repl.it)
**Screenshots**
If applicable, add screenshots to help explain your question.
**Additional context**
Add any other context about the question here.

View File

@ -1,7 +0,0 @@
<!-- PLEASE BE SURE TO FOLLOW ALL DIRECTIONS IN CONTRIBUTING.MD BEFORE POSTING! -->
**Changes**
A bulleted list of the changes you made. Will be used in release notes.
**Reasoning**
Why you want to make these changes. Should be clear and concise.
**Drawback Handling**
Potential drawbacks in this change and how you addressed them.

View File

@ -1,2 +0,0 @@
language = "python3"
run = "python3 'HOP 1.0.2.py'"

View File

@ -1,27 +0,0 @@
# Issues
There are three types of issues: Bugs, Questions and Enhancements. For all issues, make sure you aren't posting a duplicate.
## Bugs
Bugs are things that are supposed to work but don't.
Some examples include:
* An error or exception
* A flaw in a security feature
* Encoded messages not decoding properly
Non examples include:
* A security issue not yet advertised (such as adding RSA encrytion)
* Adding something new, instead of fixing something old
* Asking a question about something you don't get
If you find a bug, label it with the "bugs" tag, as well as the "security" tag if the bug relates to security. Then, be sure to label it based on the bug report template.
## Questions
Questions are things that you are unsure about. When in doubt, mark it as a question, though be sure to always answer it yourself before posting. Be sure to format the enhancement as dictated in the feature request template.
## Enhancements
Enhancements are things you want to improve. Be sure to label it based on what type of enhancement it is:
Security: This is an improvement to security you would like to see, such as RSA encryption.
QOL: This is an improvement to quality of life you would like to see, such as more languages as codes. If in doubt, mark it as QOL.
Documentation: This is an improvement to documentation you would like to see.
Be sure to format the enhancement as dictated in the feature request template.
# Pull Requests
Pull requests are when you want to change the code yourself. Please link to any relavent issues by clicking on the gear next to "linked issues".
Additionally, add this to the milestone the issues are linked to, and label it based on what you are trying to solve (Bug or Enhancement and what type if necessary).
They should be formatted as dictated in the pull request template.

70
HOP 1.0.1 - decode.py Normal file
View File

@ -0,0 +1,70 @@
#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)

71
HOP 1.0.1 - encode.py Normal file
View File

@ -0,0 +1,71 @@
#1.0:
#Released HOP Encode
#1.0.1:
#Updated version number
#Added optimize for Discord option
#Added changelog
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')
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
print("Your encoded message: "+stepfour)
stepfour = str(stepthreeb)+"h"

View File

@ -1,162 +0,0 @@
#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
#HOP
#1.0.2:
#Combined HOP Encode and HOP Decode
#Integrated GitHub and repl.it
#Added several files, including .replit, CODE_OF_CONDUCT.md, CONTRIBUTING.md, README.md, and SECURITY.md
#Moved input, print, and import statements outside functions
#Added ability to choose on runtime encode or decode
#1.0.2.1:
#Made changes to show that the "optimize for Discord" option also supports Element/Matrix, IRC, Joplin, etc.
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:
mdsupport = input("Optimize for markdown supported services, like Discord, Element/Matrix, Joplin, or IRC? y or n: ")
if(mdsupport=="y"):
answer = True
stepfour = "```"+str(stepthreeb)+"h```"
elif(mdsupport=="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))

View File

@ -1,9 +0,0 @@
# Security Policy
## Supported Versions
Always use the latest version to get the best security. Only the latest version will receive updates.
## Reporting a Vulnerability
Since this is an obsfucation program, if there's some security problem, that's either a bug or an enhancement. Report it using gitea features request and use the security label.