Python语言安全密码散列
示例
hashlib模块公开的PBKDF2算法可用于执行安全的密码哈希。虽然此算法无法防止暴力攻击以从存储的哈希中恢复原始密码,但它使此类攻击非常昂贵。
import hashlib
import os
salt = os.urandom(16)
hash = hashlib.pbkdf2_hmac('sha256', b'password', salt, 100000)PBKDF2可以与任何摘要算法配合使用,以上示例通常使用SHA256。应该将随机盐和散列密码一起存储,您将再次需要它,以便将输入的密码与存储的散列进行比较。每个密码都必须用不同的盐进行哈希处理,这一点很重要。至于轮数,建议为您的应用设置尽可能高的值。
如果您希望结果为十六进制,则可以使用以下binascii模块:
import binascii hexhash = binascii.hexlify(hash)
注意:虽然PBKDF2不错,但bcrypt(尤其是scrypt)被认为更能抵抗暴力攻击。目前,这两者都不是Python标准库的一部分。
热门推荐
10 财运虎年祝福语简短语
11 单亲爸爸春节祝福语简短
12 狗狗上厕所训练
13 植物种植祝福语简短
14 翻译考试祝福语朋友简短
15 个人周年庆简短祝福语
16 狗狗怎么训练
17 分别祝福语简短搞笑英文
18 生日广州男生祝福语简短