I like the idea of hashapass, but I’m unwilling to use an online tool, as I fear that someday it might be compromised. So I wrote down my own variant of hashapass. It uses slightly longer passwords, and sha256 as the hash function.
#! /usr/bin/python """ passha.py - Generate passwords from a master password and a parameter. Based on hashapass (http://hashapass.com) """ import hmac import hashlib def main(passwd, param): hm = hmac.HMAC(passwd, param, hashlib.sha256) print hm.digest().encode("base64")[:10] if __name__=="__main__": import getpass passwd = getpass.getpass() param = raw_input("Parameter: ") main(passwd, param)