123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- Metadata-Version: 1.1
- Name: backports.pbkdf2
- Version: 0.1
- Summary: Fast PBKDF2 for Python 2.6 - 3.4
- Home-page: https://bitbucket.org/tiran/backports.pbkdf2
- Author: Christian Heimes
- Author-email: christian@python.org
- License: PSFL
- Description: ========================================================
- PKCS#5 password-based key derivation function 2 (PBKDF2)
- ========================================================
-
- This is a backport of ``hashlib.pbkdf2_hmac`` for Python 2.6 to 2.7. The
- implementation comes with a pure Python implementation and a C module that
- depends on OpenSSL. The C code does *not* wrap ``PKCS5_PBKDF2_HMAC`` as
- its implementation is suboptimal.
-
-
- Usage
- =====
-
- ::
-
- >>> from backports.pbkdf2 import pbkdf2_hmac, compare_digest
- >>> dkey = pbkdf2_hmac('sha1', passwordbytes, saltbytes, iterations=100000)
- >>> compare_digest(dkey, originalkey)
- True
-
-
- pbkdf2_hmac(hash_name, password, salt, iterations, dklen=None)
-
- hash_name
- name of the digest algorithm as string
-
- password
- password as bytes, bytearray or bytes-like object (*)
-
- salt
- salt as bytes, bytearray or bytes-like object (*). The salt should be
- generated with a CPRNG like ``os.urandom()``. You should **never** use
- ``random.random()``. About 16 bytes seem to be a good choice.
-
- iterations
- number of rounds, 100,000 rounds of SHA-1 take about 30ms on a modern
- CPU.
-
- dklen
- length of the derived key (defaults to digest_size)
-
- returns
- derived key as bytes
-
- (*) bytearray and bytes-like objects are not supported on Python 2.6
-
-
- Benchmarks
- ==========
-
- ==================== ===== ===== ===== ======
- password length 10 100 500 1000
- ==================== ===== ===== ===== ======
- backports.pbkdf2 C 0.314 0.321 0.310 0.310
- backports.pbkdf2 Py 0.838 0.847 0.853 0.913
- pbkdf2_ctypes 0.99.3 0.554 0.663 0.954 1.344
- pbkdf2 1.3 5.235 5.746 6.155 6.450
- Django pbkdf2 1.5.4 1.976 2.430 2.676 3.078
- PyCrypto 2.6.1 6.903 9.062 9.518 10.274
- ==================== ===== ===== ===== ======
-
- algorithm
- sha1
- rounds
- 50000
- dklen
- 20
- saltlen
- 16
- number of runs per test
- 10
- Python
- Python 3.3 on Linux AMD64
- CPU
- Intel i7-2860QM @ 2.50GHz
-
- Changelog
- =========
-
- pbkdf2 0.1
- ----------
-
- *Release date: 19-Oct-2013*
-
- - initial release of backports.pbkdf2
-
-
- Keywords: pbkdf2 password openssl security
- Platform: POSIX
- Platform: Windows
- Classifier: Development Status :: 4 - Beta
- Classifier: Intended Audience :: Developers
- Classifier: License :: OSI Approved :: Python Software Foundation License
- Classifier: Natural Language :: English
- Classifier: Operating System :: POSIX
- Classifier: Operating System :: Microsoft :: Windows
- Classifier: Programming Language :: C
- Classifier: Programming Language :: Python
- Classifier: Programming Language :: Python :: 2
- Classifier: Programming Language :: Python :: 2.6
- Classifier: Programming Language :: Python :: 2.7
- Classifier: Programming Language :: Python :: 3
- Classifier: Programming Language :: Python :: 3.2
- Classifier: Programming Language :: Python :: 3.3
- Classifier: Programming Language :: Python :: Implementation :: CPython
- Classifier: Programming Language :: Python :: Implementation :: PyPy
- Classifier: Topic :: Security :: Cryptography
|