Inspiration
Sending secret messages is difficult. Have you heard the phrase 'Hide in the plain sight'? This is the principle behind eCrypt! It used an image and a secret key to embed messages in the image using double-layer encryption.
What it does
The web app takes an image and a secret and encrypts the message (text file) in the image and gives the encrypted image. To the naked eye, it seems exactly the same as the previous one, but it contains the message. To decrypt the image we need the encrypted image and the same secret used in encryption to decrypt the image to get the message back.
How we built it
We used Django to build the web app. To do the image manipulation I used NumPy and PIL libraries. For the encryption and decryption, simple-crypt library was used. The technique I used has double encryption layers so it is difficult to crack it.
Challenges we ran into
Building the web app using the Django framework was the difficult part because there were a lot of new things I used, like the template engine, etc... The simple-crypt library was used to encrypt the message but embedding the message in the image was difficult.
Accomplishments that we're proud of
I just designed the entire project part by part, to see them all work together was very fullfilling.
What we learned
- Encryption protocol
- Django framework
- Embedding works in an image
What's next for eCrypt
The interface can be improved. More testing needs to be done to test the size of messages that can be encrypted. Adding more additional encryption layers can increase security.
Log in or sign up for Devpost to join the conversation.