Its the curse of the internet age: we all have to remember user names and passwords to a whole host of web sites and programs. If you do a web search, you can find a legion of different password keeper programs available for any platform. Open-source, free, or commercial, take your pick.

A few years ago, as an exercise in writing a non-web-based program, and because I did not (and still don't) trust anyone else with my passwords, I decided to write my own version of a password keeper, that also helps me to generate some "random" passwords for the times when I cannot think of one for myself. I wanted a cross-platform program with a simple and encrypted way of storing the password information, so I wrote it in Java, since I could use a crypto API directly (without javax.crypto stuff) using the BouncyCastle lightweight API and a nice way of doing GUI layouts using JGoodies. This program stores the passwords in an encrypted text file, allows you to import from and export to other encrypted files, and allows you to print out the passwords for a hardcopy (if you can find someplace secure to store it). Oh, did I mention it can run anywhere that Java can, without needing to worry about crypto restrictions?!

I know I should open-source this program, but I am lazy, so I'll just post the source code, platform-independent version and Mac OSX .app bundle here instead. The code is not pretty, but not too bad for a first go with a Swing GUI framework. If anyone feels like contributing then comment on this post and I'll make an open source project somewhere.