I wrote this Python command line utility so I could use a master password with reasonable safety and without me having to keep track of and avoid losing some master password database.
It uses repeated hashing of the master password and site name to generate a random 12 character password that's carefully (and deterministically of course) chosen to satisfy the ridiculous password requirements of most sites. You then copy and paste the password out of the shell window into the site.
The repeated hashing serves the purpose of making it very difficult to guess the master password even if you know the generated password and site name. I chose a number of iterations that takes about 4-5 seconds to compute on 2012/2013 era hardware. There should be no shortcut to this computation, and it's not an invertible function. So someone has to repeatedly guess a password, then engage in a lengthy computation to see if they're right. Even with a botnet, this is prohibitive for even a single password, especially if it's well chosen.
A few people have seemed very interested in this, so I'm posting this link here. It works, and generates a nice help with --help. But it could likely be packaged a lot more nicely. Also, someone could wrap it up in a GUI so an ordinary person could use it.
Also, I need to make an Android version that generates identical passwords. It's tedious to type the generated passwords into my phone. That, of course, will require a nice GUI.https://bitbucket.org/omnifarious/makepw