This is an old revision of the document!
Shamus attempts to explain hashing then Use bcrypt to store passwords.
Consider py-bcrypt at code.google. No documentation there, yet. Old documentation.
import bcrypt
# Hash a password for the first time, with a randomly-generated salt
hashed = bcrypt.hashpw(password, bcrypt.gensalt())
# gensalt's log_rounds parameter determines the complexity.
# The work factor is 2**log_rounds, and the default is 12
hashed = bcrypt.hashpw(password, bcrypt.gensalt(10))
# Check that an unencrypted password matches one that has
# previously been hashed
if bcrypt.hashpw(password, hashed) == hashed:
print "It matches"
else:
print "It does not match"
Never use passwords whose unsalted MD5 hash can be looked up here: http://md5.gromweb.com/
AES encryption of files in Python with PyCrypto
Someone suggested Whirlpool_(cryptography)