python 2.6-3.4的快速pbkdf2

backports.pbkdf2的Python项目详细描述


这是python 2.6到2.7的hashlib.pbkdf2_hmac的后台端口。这个 实现附带一个纯python实现和一个c模块 取决于openssl。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(散列名称、密码、salt、迭代次数、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 ^{tt3}$. You should never use ^{tt4}$. 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

基准

password length101005001000
backports.pbkdf2 C0.3140.3210.3100.310
backports.pbkdf2 Py0.8380.8470.8530.913
pbkdf2_ctypes 0.99.30.5540.6630.9541.344
pbkdf2 1.35.2355.7466.1556.450
Django pbkdf2 1.5.41.9762.4302.6763.078
PyCrypto 2.6.16.9039.0629.51810.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

更改日志

pbkdf2 0.1

发布日期:2013年10月19日

  • backports.pbkdf2的初始版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
相对于框架java窗口的鼠标位置错误   Java 8流peek api   java将数据附加到文件中   java使用ExoPlayer 2.8播放播放列表中的特定文件   JavaSpring国际化:如何动态设置语言环境值   java如何在mysql中实现两个表之间的两个关联   java在gradle可执行jar文件中包含运行时参数   surefire插件中的java maven多套测试套件   java试图理解堆分析以确定内存泄漏或所需的大量内存   java识别字符串有数字   数组如何解决错误“java.lang.ArrayIndexOutOfBoundsException:5”   java Swt文件对话框选择的文件太多?   java此登录代码易受SQL注入攻击吗?   Java[3]中的文件<identifier>预期编译错误   java如何在spring webflux中发送列表   jar中未找到java文件异常   如何在java中合并2D数组?   java如何评测本机JNI库