hidewords [-P printer]
I need to remember some passwords, and they are not particularly mnemonic. They contain mixed-case letters, digits, and punctuation, and they aren't based on real words. And I change them every three months. And I'm getting older, so my memory for this kind of stuff isn't getting any stronger. Worse, I'm the sysadmin, so forgetting my password isn't easy to fix by going to the sysadmin. And (still worse) forgetting a critical password can stop work in its tracks, and cause people to get mad at me. I need a backup plan in case forgetfulness strikes at an inopportune time.
The solution is to write down the passwords and keep them in a safe place, like my wallet. This is heresy to some, but the practice is condoned (if not enthusiastically recommended) in Practical UNIX & Internet Security by Garfinkel and Spafford (O'Reilly, 3rd Edition, 2003). So there.
However, Garf and Spaf suggest that (among other things) you mix in some random noise characters so the passwords aren't readily available to the casual browser.
This script does that by embedding one or more input words into a rectangular array of random characters (like those hide-a-word puzzles you've probably seen). Once the array is generated, it's printed on your local PostScript printer, either your default printer or one specified on the commandline. Here's an example, where I've hidden the words Hor@eld3, ViUj,Ok1, and ow6owAc[ (none of which are, or ever have been, or ever will be, my actual passwords).

The actual size of the printed rectangle is about the size of a credit card, so I cut it out and put it in my wallet. If I forgot a password, I would need to be able to "find" it somewhere in the array. But I usually remember something about the password, so (I hope, anyway) it's just a matter of time to dig it out.
This implies that a semi-competent bad guy would be able to dig out the passwords too. So if (for example) my wallet is lost or stolen, among the many things I would need to do is to change my passwords.
Some other notes about the script:
Last modified: December 3 2003 13:58 EST
Paul A. Sand, pas@unh.edu