当前位置:  开发笔记 > 编程语言 > 正文

是否有使用PBKDF2作为密码哈希的标准?

如何解决《是否有使用PBKDF2作为密码哈希的标准?》经验,为你挑选了0个好方法。

和我一起打击弱密码哈希.

PBKDF2密码哈希应该包含salt,迭代次数和哈希本身,以便以后验证.对于PBKDF2密码哈希,是否有标准格式,如RFC2307的{SSHA}?BCRYPT很棒,但PBKDF2更容易实现.

显然,没有规范.所以这是我的规格.

>>> from base64 import urlsafe_b64encode
>>> password = u"hashy the \N{SNOWMAN}"
>>> salt = urlsafe_b64decode('s8MHhEQ78sM=')
>>> encoded = pbkdf2_hash(password, salt=salt)
>>> encoded
'{PBKDF2}1000$s8MHhEQ78sM=$hcKhCiW13OVhmLrbagdY-RwJvkA='

更新:http://www.dlitz.net/software/python-pbkdf2/定义crypt()替换.我更新了我的小规格以匹配他,除了他的开头$p5k2$而不是{PBKDF2}.(我需要远离其他LDAP风格的{SCHEMES}).

这是{PBKDF2},迭代的在小写十六进制数,$中,urlsafe_base64编码的盐,$以及urlsafe_base64编码的PBKDF2输出.salt应该是64位,迭代次数应该至少为1000,具有HMAC-SHA1输出的PBKDF2可以是任意长度.在我的实现中,默认情况下总是20个字节(SHA-1哈希的长度).

在通过PBKDF2发送之前,密码必须编码为utf-8.没有关于它是否应该归一化为Unicode的NFC的说法.

iterations与{SSHA}相比,这种方案应该比蛮力更加昂贵.

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有