Inspiration
Inspired by our backend developer's passion for cybersecurity and her desire to potentially enter the field in the future.
What it does
It takes an encrypted message and attacks it to retrieve the original message. The program currently works on RSA, Caesar cipher, Atbash cipher, and number substitution cipher. The user has to choose from the dropdown menu which cipher it most likely is.
How we built it
We used react.js for the frontend, then node.js and express.js to build the backend. Our algorithms for breaking the ciphers are written in JavaScript.
Challenges we ran into
- Exceeded maximum number of API fetch requests
- Forced to use a linguistic approach to detect words in a message, too high time complexity
- Struggled with certain node modules in a web environment
- The integers needed to break ciphers were too large for normal javascript integers
Accomplishments that we're proud of
- Frontend successfully works
- All ciphers can successfully break any message
- Persevering through multiple versions of an decryption algorithm to find what works
What we learned
- Not to spend a huge amount of time on any one feature—if it doesn’t work after hours, try something else
- Making calculations with big integers in javascript without using the BigInt package
- Figuring out how to use frequency analysis to identify English text amongst gibberish
What's next for AnyCrypt
- Develop more ciphers, specifically the substitution cipher and the Vigenère cipher
- Incorporate animations beside cipher type to illustrate what our algorithm is doing to break the code
- Use machine learning to detect which type of cipher it is without user inputting
Built With
- api
- axios
- express.js
- javascript
- node.js
- python
- react.js

Log in or sign up for Devpost to join the conversation.