Skip to content
This repository has been archived by the owner on Feb 27, 2020. It is now read-only.

nvie/BKrypt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BKrypt

Wrapper around python-bcrypt to provide simple access to the future-proof BCrypt algorithms, for password hashing.

Generating a password hash

>>> from bkrypt import Password
>>> p = Password.create('my secret password')
>>> print(p)
$2a$04$I2KuvSCq4pF/xJeSieLcsO.xs204lqy1IuakktiI/PZxv7OwIAoWS

To get the hash string out, use p.hash or str(p).

Checking password correctness

>>> from bkrypt import Password
>>> p = Password('$2a$04$I2KuvSCq4pF/xJeSieLcsO.xs204lqy1IuakktiI/PZxv7OwIAoWS')
>>> p == 'foo'
False
>>> p == 'my secret password'
True

About the hashes

Generating stronger hashes

Note that generating a password hash for the same password will result in different hashes every time:

>>> for i in range(0, 3):
...     p = Password.create('my secret password')
...     print(p)
...
$2a$04$eddbs9i/v3xuVei.d0CPaOL7g3spzxJ/z0.naES1jjI77kFpinvfK
$2a$04$E0hc67qJ8A1xOf4IdkKpteM5o1A7sQE7PvgaC1j1HgDAXkJUagQhS
$2a$04$AYPR70TyYUXN5A9Cl6wYn.ScDSGQYPwYgi.ZkBPvkI8SOQSrF.d.u

Generating stronger hashes

To generate stronger hashes, use increased strength (12 is default). Both generating and checking then takes significantly longer, by the very design of the BCrypt algorithm, that is.

>>> p = Password.create('my secret password', strength=15)
$2a$15$3LyRjuAzvX7i8uvFbwOk4ueZ0YrS4jAj3RiRsqBX5XTJlIRJrqDZ2

Installation

The usual stuff.

$ pip install bkrypt

About

Thin wrapper around the bcrypt library.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages