You may have seen my previous post about Wordish, a password generator that uses a tree (or to put it into the modern lingo: graphs) of letters to generate pseudo text based upon one or more source documents.
I found that when using it, I always bumped up the accuracy factor of the algorithm, which in effect meant a very deep tree was generated, purely so that I could get actual words to be generated, rather than pseudo ones like the algorithm intended.
There as also the PITA* aspect of visiting a website to generate a password (or to go to the cli and do it from there). What I needed for my use case was a browser extension. Luckily, I had a boilerplate webextension one hanging around that I could rely on to get the ball rolling.
So, I started writing a Wordish Addon for Firefox and Chrome, but quickly realised that I could achieve what I wanted with a simple Dictionary. By this I’m meaning a list of words. This simplifies processing and the generation of deep letter-trees, by having a list of words that have been used. The side effect, I perceive to be is an increased memory footprint, due to highly repeated letters throughout the data structure. Nevertheless, a simple Dictionary was now the goal for the project.
And finally, the source: Where does one get a good representation of words. The answer is in books of course, and Project Gutenberg (gutenberg.org) has a highly available list of 60,000 books or so, ready for use as source material.
So, with the bushfire smoke hanging around, I’m basically locked inside and I thought I’d spend a bit of time pulling this project together.
Enter Guten Pass
Guten Pass is a simple little project that just downloads a text ebook from gutenberg.org and then generates a list of words that it finds in it. Then using the
window.crypto library I randomly select some words to generate a password. I do this a few times to generate a few different passwords that are then displayed to the user, letting them decide which one to use:
There’s still quite a bit of ‘housekeeping’ style things to add to the plugin, but all in all it works well. It’s been tested on Greek, Chinese and Latin languages as well, so you can really push the limits on your expressiveness in password creativity. eg. Αθηναίων Πολιτεία by Aristotle†:
Guten Pass is available on Firefox here: https://addons.mozilla.org/en-US/firefox/addon/guten-pass/
Chrome will be added in the next day or two. (Edit: Chrome’s draconion and ham fisted review process will probably mean that this will be held up for several weeks… (if all goes well). So, it might be ready by February! In the meantime, switch to a real browser instead!)
Source code is here: https://github.com/cmroanirgo/guten-pass
- *Pain In The Armpit
- †I don’t speak Greek, so I can’t be sure what this says. I hope it’s not offensive!