passwdmgr
You have a file with templates for passwords for various accounts. Here is an example:
# My accounts:
Yahoo mail (johnsmith) aaa99aaa
Google mail (johns) aaa99aaa
Wikipedia (jsmith) ZZZZZZZ
This file is usually at /.passwdmgr.
When you now start passwdmgr, you will be asked to enter the master
password, from which all passwords a derived, using the master plus
the name of the account, e.g. Google mail (johns) as an input for
a hash function.
$ ./passwdmgr
Master password:
1 Yahoo mail (johnsmith) aaa99aaa
2 Google mail (johns) aaa99aaa
3 Wikipedia (jsmith) ZZZZZZZ
Enter number, 'q' to quit, or 'a' to display all passwords.
>>> a
Yahoo mail (johnsmith) --> xfr57hty
Google mail (johns) --> prc91vzs
Wikipedia (jsmith) --> 6@^F%0;
Here I typed 123 as my master password. By using a master password your
passwords will be secure even if the file /.passwdmgr gets compromised.
You can also put a small check into the file which tests a short
template to it's known result. You do this by adding the line
! 9 7
to /.passwdmgr. Now, again entering 123 as the master password,
you will receive the message You entered a wrong master password. 5,
because the template 9 does not evaluate to 7 but 5.
You simply change the line to
! 9 5
and now every time you enter a wrong master password, the program will remind you that the master password entered was wrong. It is important to keep this template quite short. In this example, the has only 10 results it can produce. This is important because otherwise someone could possibly reconstruct the master password by brute-force.
You can also use the program to easily generate one-time random passwords for whatever purpose.
$ ./passwdmgr XXXXXXXX
tU8fZDXW
$ ./passwdmgr XXXXXXXX
cw5LtjjE
Install:
Download passwdmgr. Make it executable and put it wherever you like. I'll need Python 2.5 to run the script.