My current method for secure passwords on sites that have a max around 8 or 12 or so is to think of some song lyrics I know, pick n words, camel-case them, l33+-translate a couple letters, and add shift+numeral special characters to either side.
Edit: One other neat thing about this approach is that you can honestly say that you don't know what the password is (if you are ever asked). You know how to create it, but you have no idea what it is. That may matter in some situations.
I ended up writing a simple shell script using sha256sum and dicing it several ways, a GUI app seemed a bit clunky for me.
read -s p
hash=`echo -n $p | sha256sum | sed -e 's/-//' | sed -e 's/ //'`
echo '64: '$hash
echo '40: '${hash:0:40}
echo '20: '${hash:0:20}
echo '16: '${hash:0:16}
echo '12: '${hash:0:12}
echo '10: '${hash:0:10}
echo '08: '${hash:0:8}Btw, do you ever worry that your command history might be accessed to discover your passwords?
No one but me uses it. So it's bare bones.
echo -n 'Secret sentence Sitename' | openssl sha1 -binary | openssl base64The very best GPU crackers do about 1 billion guesses a second. Good luck.
echo -n "A long sentence I can recall. site_name" | sha1sum
I use the sha1sum from that as my password.
site_name may be hackernews, slashdot, home, etc. I can break them in half (20 chars) or quarters (10 chars) if the site can't accept a 40 char password. Also I can add a period on the end if the site requires special chars. These are strong passwords and unique for each site. Works great on Windows Linux and Macs. All I need to do is recall my sentence (with proper punctuation).