monke7769 / passion

Apache License 2.0
0 stars 0 forks source link

CSP First Trimester Passion-Project

Hayden Chen, Shuban Pal, Tarun Jaikumar, Deva Sasikumar

Cipher Hijinks

This project aims to expose different ciphers and encryption methods for text strings to people who have had little to no experience with cryptography. There are two main components:

Key Features

The ciphers included in this project:

More features:

AI/Machine Learning tools

The backend server runs Keras (neural network), Scikit-learn, numpy and classification algorithms to enable analysis of which cipher was used to encrypt the user's message.

Model Loading and Prediction:

Text Feature Extraction:

Classification:

Machine Learning Workflow:

For developers and users

Run make to build the website page on http://127.0.0.1:4100/Passion-Project/. The Makefile will then convert all the .ipynb notebook files into the wiki pages. The frontpage (index.html) contains the encrypt and decrypt features but does not have links to the rest of the site (for aesthetic purposes). To access them, go to http://127.0.0.1:4100/Passion-Project/search and search for the pages on the rest of the site.

Run python main.py to start the backend Flask server at http:127.0.0.1:8080. main.py contains all the code handling POST requests to backend urls, including calling functions from other python files to encrypt the input. These other files are located within the main directory, including hex.py, caesar.py, etc. The file aiprediction.py trains the machine to detect which cipher was used for encryption.

Be sure to install all the packages in requirements.txt before running!