Skip to main content

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

Release files for backports.pbkdf2 0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for backports.pbkdf2 0.1
File Size Uploaded
backports.pbkdf2-0.1.tar.gz 9.9 kB Details

Release files / backports.pbkdf2-0.1.tar.gz

Download URL backports.pbkdf2-0.1.tar.gz
Size 9.9 kB
Tags Source
SHA-256 checksum
How to use checksums
6d342adb73dd86396b7c604f6da473bf98eb5356e68b99c913a30a5e64832e03
BLAKE2b-256 checksum
How to use checksums
d03236174bcfe19964e7baf7dd592b4ef8b1df5f54c3996264d6e366c8050c03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.1 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page