PokeDisplay
In the past, I had a magic mirror (2-way mirror w/ monitor and raspberry pi behind it) and one of my favorite addons for the software was a Daily pokemon addon. I decided to create a web app that was inspired by this. PokeDisplay is something I whipped up over a weekend that satisfied my very basic needs of displaying information. While I wanted to wait to post this until I had a picture of it running on my mirror, I am currently troubleshooting some issues with the mirror :). I welcome recommendations for features and contributions through Github. Great side project! If you want to talk about it as well I am excited to discuss it in the comments.
P.S. You can do something similar to this if you want! Read the code, ask questions, do some research, and learn some new things! (Title hyperlinked to GitHub repo)
Southwestern University Garden Club Website
A website designed by my peers and me to help assist the Southwestern University Garden Club with documentation and maintenance of the greenhouse and the plants involved. Can be found at http://sugarden.club/
Rock Paper Scissors Game in Python
Created a rock paper scissors game using the PyQt5 Python library.
Port Scanner in Python
import argparse
import socket
from threading import *
# From project outlines
semLock = Semaphore(value=1)
def connScan(tgtHost, tgtPort):
# connScan will be the function run as a thread and args will be the arguments used by
# the function
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # create socket
s.settimeout(0.5)
s.connect((tgtHost, tgtPort)) # connect
semLock.acquire()
print(tgtPort, " /tcp port open") # print that that port is open
s.close() # close the connection
except:
semLock.acquire()
print(tgtPort, "is filtered or closed")
finally:
semLock.release()
def portScan(tgtHost, tgtPorts): # Code from class
try:
tgtIP = socket.gethostbyname(tgtHost)
print(tgtIP)
except:
print("[-] Cannot resolve", tgtHost, ": Unknown Host")
return
for tgtPort in tgtPorts: # Outlined in Project guidelines
t = Thread(target=connScan, args=(tgtHost, int(tgtPort)))
t.start()
def main(): # code from class
parser = argparse.ArgumentParser()
parser.add_argument('-H', dest='tgtHost', required=True,
help='specify target host')
parser.add_argument('-p', dest='tgtPorts',
default='21, 22, 23, 25, 80, 443', help='specify target port(s)')
args = parser.parse_args()
tgtHost = args.tgtHost
tgtPorts = str(args.tgtPorts).split(', ')
portScan(tgtHost, tgtPorts)
if __name__ == "__main__":
main()
Brute Force Password Hash Cracker in Python
# Used for reference
#root:$1$h0oYf/69$l4JuFV3DF5bCyI2Maifaa/:16467:0:99999:7:::
#sys:$1$fUX6BPOt$Miyc3UpOzQJqz4s5wFD9l0:14742:0:99999:7:::
import crypt
def brutePass(salt, passHashed):
salt = "$1$"+salt
passHashed = salt+"$"+passHashed
dictFile = open('rockyou.txt', 'r')
for password in dictFile.readlines():
password = password.strip('\n')
foundPassword = crypt.crypt(password, salt)
if passHashed == foundPassword:
return password
def main():
fname = open('shadow.txt','r')
for x in fname.readlines():
line = x.strip()
user = line.split(':')[0]
salt = line.split('$')[2]
hash = line.split('$')[3].split(':')[0]
print "User: ",user,"\t","Salt: ",salt,"\t","Hash: ",hash
password = brutePass(salt, hash)
if password:
print "The password is ", password
else:
print "no password found"
fname.close()
if __name__== "__main__":
main()
Riddle Me This
This is a side project that I was working on in my spare time. I wanted to take the same aspects and functions of ransomware and instead of locking information behind a paywall I wanted to have the user complete a series of riddles and questions in order to retrieve access to their files. This was not meant to be used anywhere other than on my machine only targeting a few specific files. The purpose was to learn python by doing something unusual with it.
Caesar Shift Cipher
A Caesar shift cipher program that will be able to encrypt and decrypt a text file and also encrypt and decrypt a text input based on a user-chosen key. This program also has the functionality to brute-force guess a Caesar Shift Cipher if the key is unknown.
Contraception Calculator
The Contraception Calculator is an interactive web page that was designed for one of my classes. The web page is easy to navigate since it is based on a familiar user interface (a calculator) and also provides useful information. it works as a basic calculator for determining the chance of getting pregnant based on the forms of contraception selected. It could be improved in several ways to make it a solid source of information.
The Six Degrees of Discrete
The aim of this project was to show the connections between our Discrete mathematics course and other courses. I picked up the idea of using JavaScript (p5.JS) to show my visual map with the various connections to my other courses that I had previously taken. Connecting each node to the previous node with the topic that I feel most related to the previous node. Each node represents the course and topic that is related to the previous node’s course. The choice to use red is the “important” color because this signifies that the user has reached the end and sixth degree on the separation of the visual map. There should be 12 red endings in the visual map. The significance of Kevin Bacon’s head is a dedication to the idea I received for the final product of the visual map. An obstacle I had to overcome was the fact that I didn’t know how to code in JavaScript. So I learned how to and I truly enjoyed this portion, learning a new language and being able to test this knowledge with a cool project. The final product came out to around 600 lines of code.