werkzeug.security.generate_password_hash的iterations与salt_length区别及默认值问询
werkzeug.security.generate_password_hash()参数说明 两个参数的核心概念差异
- salt_length参数:指生成随机盐值的字节长度,和哈希迭代次数无任何关联。每个密码对应的随机盐独立生成,作用是避免相同密码产出相同哈希结果,抵御彩虹表破解攻击。你输出结果中
$分隔的第二段randomsalt,就是根据该参数生成长度匹配的盐值经编码后的结果。 - iterations参数:你从输出中识别到的150000就是该参数的实际取值,它是PBKDF2密钥派生函数的迭代计算次数,即「密码+盐」的组合被反复执行哈希计算的次数。该值越高,暴力破解密码需要的计算成本越高,同时生成哈希的耗时也会越长,是安全等级和计算效率之间的平衡参数。
相关疑问确认
- 你观察到的输出格式
pbkdf2:sha256:150000$randomsalt$resultinghash结构完全正确,各段依次为「密钥派生算法名称、哈希摘要算法、迭代次数、盐值、最终哈希结果」。 - werkzeug 2.0及以上的稳定版本中,
salt_length参数的默认值确实为8,默认生成8字节长度的随机盐,你看到的盐字符串长度长于8是因为盐值经过了base64编码处理。
内容的提问来源于stack exchange,提问作者heretolearn
相关产品推荐
相关产品推荐

