Disgruntled with the poor security and the proprietary nature of modern smartphones, we decided on a way to store photos from the smartphone onto an encrypted container. Proprietary software like Facebook will scan an entire phone and send the all the data back to Facebook, and smartphones have a co-processor which send out I/O scans of your device and its storage. We also wanted to play with encryption and make something that we ourselves would use.

What it does

Well, what it does so far (as much as we could have possibly done in ~24 hours), can be explained as a few features of a much grander idea in mind. You can upload images via MMS (using Tiwilio), you can encrypt (actually shuffle) images to be unrecognizable, and later decrypt them with minimal loss of quality, in both Java & Python. It features AWS DynamoDB, API Gateway, AWS S3, and Twilio webhook. You can view your submitted images on a website consisting of a flask-based framework. It's secured via password, as well.

Challenges we ran into

The biggest challenge we had was working with Android Studio and Java to make an app that encrypts right on the phone. It could receive the images and process them, but we couldn't get them to save onto the phone. The app encrypted the photos but it did not save them. Lastly, there is surprisingly a lack of support for things like ImageIO and AWT on the Android SDK, whereas it is standard on Java's JDK.

How we built it

We wrote a lot on the blackboard that we had at our disposal, and we drank a lot of coffee. We started with separating our roles, each of us given a big assignment. Jason did the image scrambler, the frontend, and the website backend. Matthew took care of everything AWS and Twilio, and I worked on the android app, getting most things to work, but not everything could be done.

Accomplishments that we're proud of

This was Matthew's first hackathon, and it was his first time engaging with a team and overall he's proud of being able to put his skills to the table (or to the keyboard, rather). Jason was proud of his sweet image scrambler, and I was happy to do something that was security oriented, something that I'm passionate about.

What we learned

Java is a terrible language.
Android Studio is a big headache.
But I also learned more from Jason than I have ever learned from any of my Java professors, since he patiently explained to me all the unabstracted details of object oriented programming that have been so abstract for me.

What's next for photocryptor

We might try doing it in a different framework other than Java. Perhaps create a better frontend, and a better user experience.

Share this project: