Inspiration

Everyone knows that you should keep a secure password for every online (or offline) account you have. Unfortunately, that's much easier said than done. Ideally, we'd all have 50-character, randomly generated, alphanumeric + special character passwords that would be impervious to pretty much any attack you could think of, but the truth of the matter is that such passwords are impossible to remember, making them massively inconvenient to use. What this means, realistically, is that most people use wildly insecure passwords (oftentimes the same one for multiple sites) in an effort to maximize memorability and subsequent ease of access. As it stands, there exists a tradeoff between password security and memorability; you must sacrifice one to attain the other. Our aim in this project is to fix this.

What it does

Psonic is a password manager, equipped with password generation and encrypted storage. I know, doesn't sound very unique so far. What makes Psonic different from (read, superior to) any other password manager is its mnemonic generating capabilities. Unlike similar software, Psonic is designed to help you remember your important passwords on your own, so you can easily log into whatever you must without having to open the program every time, while still maintaining the security of a randomly generated password. Not sure exactly what this means? Here's an example:

u0mPhP.arLE&S! ---> "unbearable zero-mouthed Patricks hate Pontiacs. armies repair Lithuanian Esthers and Saturns!"

With mnemonics, we are able to turn the jumbled mess of characters that is "u0mPhP.arLE&S!" into something that is much easier on the eyes, and more importantly, much more memorable (the absurdity helps!). We are able to perform such transformations thanks to our state of the art mnemonic generation algorithm. In fact, our algorithm is unrivaled in sophistication, making it the most advanced mnemonic generation algorithm in the world (when it comes to variability of input). Don't believe me? Go check out our competitors. Most tools you find will be limited to the twenty-six lowercase letters of the alphabet, and none will be able to handle letters (both cases), numbers, and special characters combined. This fact means that Psonic is the only mnemonic program capable of processing truly secure passwords.

How we built it

Psonic is built with Electron, which is a framework that allows you to use web development tools such as HTML, CSS, and JavaScript to develop desktop applications. It also relies on other node.js modules such as lodash and list modules.

Challenges I ran into

Psonic's development was not void of challenge—quite the opposite actually. To develop this app, we had to learn how to use a completely alien framework (Electron) and encrypt/decrypt files with AES as well as actually develop an algorithm that creates mnemonics, which was no easy task. I (Ken) spent over eight hours writing the algorithm declaratively in Prolog, only to realize upon compilation that no interpreter (let alone one written in JavaScript) could run the code nearly as fast as we needed it to, and subsequently had to rewrite it imperatively in JavaScript. And don't get me started on the bugs. Even after the algorithm was up and running, there were still hours on hours to spent finding and squashing bugs.

Accomplishments that I'm proud of

As mentioned before, this software is the best of its kind (as of the time of release), unmatched in its range of input. I'd say that's not too bad for a three-day hackathon. On top of this, we also had to learn how to actually use Electron (and brush up on our JavaScript). This is no easy feat, and is also something to be proud of, for sure.

+ 2 more
Share this project:

Updates