Here is what I do:
require 'digest/sha1'
puts "doubly troubly"
thing = gets.chomp
base = Digest::SHA1.hexdigest(Digest::SHA1.hexdigest(thing))
puts base
puts base[0..3] + "^!!^E" + base[4..-1]
puts base[0..3] + "^!!^E" + base[4..6]
puts base[0..3] + "^!!^E"
For any site I input the domain (so "zach.tumblr.com" + my_salt would be inputed) then I copy one of the four outputs based on what security level I think the site deserves. THEN (and most critically) I add a password that rotates key characters based on factor X of the site. Think about this like a normal password, but it changes.I then expose this little piece of code on every one of my computers as well as on a protected server that lives only on an IP.
I 100% agree with this article, but I have my own system and it works well.