Bcrypt is an implementation of a modern password hashing algorithm, based on the Blowfish block cipher, by David Mazieres and Niels Provos. It has been the default password scheme since OpenBSD 2.1.
A paper on the algorithm that explains its design decisions is available here: http://www.usenix.org/events/usenix99/provos.html
The most important property of bcrypt is that it is adaptable to future processor performance improvements, allowing you to arbitrarily increase the processing cost of checking a password while still maintaining compatibility with your older password hashes.
This package provides a high level object oriented wrapper around bcrypt, as well as low level bindings to the C library. It requires Python 2.4 because it uses the random number generator random.SystemRandom() to create the salts.
The API is so simple:
>>> from bcrypt_wrap import password
>>> bc_pass = password.Password()
>>> hash = bc_pass.create('crack my pass')
>>> bc_pass.valid('crack my pass', hash)