跳转到主要内容

适用于Python 2.6 - 3.4的快速PBKDF2

项目描述

这是Python 2.6到2.7的hashlib.pbkdf2_hmac的向后移植。实现包括纯Python实现和依赖于OpenSSL的C模块。C代码没有将PKCS5_PBKDF2_HMAC包装,因为其实现不是最优的。

用法

>>> 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

作为字符串的摘要算法名称

password

密码作为字节、bytearray或类似字节对象 (*)

salt

盐作为字节、bytearray或类似字节对象 (*)。盐应使用类似于os.urandom()的CPRNG生成。您绝对不应该使用random.random()。大约16字节似乎是一个不错的选择。

iterations

轮数,100,000轮SHA-1在现代CPU上大约需要30ms。

dklen

派生密钥的长度(默认为摘要大小)

返回

派生密钥作为字节

(*) 在Python 2.6中不支持bytearray和类似字节对象

基准测试

密码长度

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

算法

sha1

轮数

50000

dklen

20

盐长度

16

每测试运行的次数

10

Python

Linux AMD64上的Python 3.3

处理器

Intel i7-2860QM @ 2.50GHz

变更日志

pbkdf2 0.1

发布日期:2013年10月19日

  • backports.pbkdf2的首次发布

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

backports.pbkdf2-0.1.tar.gz (9.9 kB 查看哈希值)

上传时间:

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面