Rubber duck debugging! Two of our members have large rubber ducks for use in debugging and we came up with a custom encryption scheme.


QuackCryption is a novel approach to data structures, app development, and encryption by four, 2nd-semester Purdue University computer science majors. In essence, either text or a file is inputted (along with maybe a passphrase of the user's choosing), the text is encrypted using 128-bit AES (in CBC mode), and then that text is then converted into 'Quack' code. The data encrypted can be decrypted back to its original form, bit-for-bit. This software is open source.

How we built it

Primarily in Java (IntelliJ for desktop and backend, Android Studio for Android app) with JavaScript for the web app.

Challenges we ran into

Converting files into quacks (essentially creating a data structure) was extremely difficult as we had to read in data one byte at a time. File structures were not very intuitive to work with. Maintaining file name across encryption/decryption was extremely arduous.

Documenting and standardizing one data structure (the .quack data structure) across all of the platforms was extremely difficult.

Java's Swing package was extremely difficult to work.

The web app is mostly non-functional. It works to some extent (text can be quacked and unquacked across sessions) but is not interoperable across other QuackCryption products.

Accomplishments that we're proud of

It legitimately works!

What we learned

Java's Swing package, graphic design, AES encryption, and data structures/encrypted data structures.

What's next for QuackCryption

Convert to LLC, change world, sell out to Google.

Built With

Share this project: