Port to Python 3.
Changed MD5 to SHA1 to demonstrate that *any* hashing algorithm is bad for password storage if you don't use salts.  Use random individual salts!