The GoSecure Applet

This applet uses the net.goui.util.GoSecure class to implement a simple but secure means by which to manage different passwords for multiple services which can be accessed from any web browser.

How to Generate a Password

In order to generate a secure password (and more importantly make sure you can reliably regenerate it later) you need to have a well defined process in place. You must make sure that any information you need to enter into the applet can be recalled at a later date, so being as methodical as possible is vital.

User Input

Password Types

If at First You Don't Succeed

Even when you have entered all this information in accordance with your chosen methodology there is still a chance that a generated password may not be suitable for a given service (for example a website may require that a password contains at least two symbol characters). In this case it is possible to hit Create again to generate the next password in sequence until a suitable password is found. This sequence is completely deterministic so when you come to regenerate this password you should be able to skip the same number of invalid passwords to retrieve your password.

The Applet Controls

Setting Your Own Defaults

All of the input fields for the applet can have their defaults overridden by providing extra parameters in the HTML of the form <param name="parameter" value="default-value">. The valid parameters are:

There are other parameters which you can supply to change the internal state of the applet:


As well as the main GoSecure applet, there is a simplified version available targeted at password retrieval. This is intended to be used in conjunction with a simple CGI script, to allow bookmarks to be created which can contain all the non-secure information about a password.

The GoSecureLite applet contains a minimal UI and is expected to take most of its state from the parameters supplied to it. Typically the applet will be supplied with all its user information except the passphrase itself, ensuring that there is no risk of forgetting things like the service string used. This applet is designed to be launched by the GoSecure.cgi script which uses the parameters provided to the URL. The best way to create such a URL is to use the Dump feature of the main GoSecure applet.

As well as the applet parameters described above, the URL used to launch the GoSecureLite applet can contain other parameters.

Typically you would generate one URL for each password you wish to manage and then add these to your bookmarks. You can also make them available on a webpage so they can be accessed from any computer. If you don't want people seeing your username for a particular site you can remove it from the URL and the GoSecureLite applet will prompt you for it.

Thanks go to Tom Van Vleck for letting me use his GPW (Generate Pronouncable Passwords) algorithm in this code (see http://www.multicians.org/thvv/gpw.html) and to Makoto Matsumoto and Takuji Nishimura for developing the rather nice Mersenne Twister implementation from which I derived the MTRandom class (see http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html).

As an aside to all of this (and a means to plug my own work a little) these applets both use the net.goui.awt.GoLayout class to manage the positioning of their components which makes specifying layouts like this very straightforward.