From fc119a49668e93b2c009ea2e270044a97c017d51 Mon Sep 17 00:00:00 2001 From: Donald Stufft Date: Sat, 11 May 2013 00:41:30 -0400 Subject: [PATCH] Add some usage instructions to the README --- README.rst | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/README.rst b/README.rst index d05eae8..5004a8d 100644 --- a/README.rst +++ b/README.rst @@ -1,4 +1,67 @@ bcrypt ====== +.. image:: https://travis-ci.org/dstufft/bcrypt.png?branch=master + :target: https://travis-ci.org/dstufft/bcrypt + Modern password hashing for your software and your servers + + +Installation +============ + +To install bcrypt, simply: + +.. code:: bash + + $ pip install bcrypt + + +Usage +----- + +Basic +~~~~~ + +Hashing and then later checking that a password matches the previous hashed +password is very simple: + +.. code:: pycon + + >>> import bcrypt + >>> password = b"super secret password" + >>> # Hash a password for the first time, with a randomly-generated salt + >>> hashed = bcrypt.hashpw(password, bcrypt.gensalt()) + >>> # Check that a unhashed password matches one that has previously been + >>> # hashed + >>> if bcrypt.hashpw(password, hashed) == hashed: + ... print("It Matches!") + ... else: + ... print("It Does not Match :(") + + +Adjustable Work Factor +~~~~~~~~~~~~~~~~~~~~~~ +One of bcrypt's features is an adjustable logarithmic work factor. To adjust +the work factor merely pass the desired number of rounds to +``bcrypt.gensalt(rounds=12)`` which defaults to 12): + +.. code:: pycon + + >>> import bcrypt + >>> password = b"super secret password" + >>> # Hash a password for the first time, with a certain number of rounds + >>> hashed = bcrypt.hashpw(password, bcrypt.gensalt(10)) + >>> # Check that a unhashed password matches one that has previously been + >>> # hashed + >>> if bcrypt.hashpw(password, hashed) == hashed: + ... print("It Matches!") + ... else: + ... print("It Does not Match :(") + + +Compatibility +------------- + +This library should be compatible with py-bcrypt and it will run on Python +2.6, 2.7, 3.2, 3.3 and PyPy 2.0.