You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Werkzeug加密密码,如何非切片获取pbkdf2:sha256:600000后的内容

如何获取Werkzeug加密密码时前缀后的哈希内容?

Werkzeug的generate_password_hash方法返回的完整哈希串包含算法、迭代次数等元信息,这是为了方便后续用check_password_hash直接验证。如果不想通过字符串切片提取前缀后的内容,可以直接调用Werkzeug的底层方法手动生成:

  • 用werkzeug.security.gen_salt生成和默认逻辑一致的随机盐
  • 用werkzeug.security.pbkdf2_hex计算PBKDF2哈希值
  • 拼接盐与哈希值,得到目标结果

示例代码:

import werkzeug

# 生成8位长度的盐(与generate_password_hash的salt_length参数对应)
salt = werkzeug.security.gen_salt(8)
# 计算PBKDF2-SHA256哈希,迭代次数保持600000(Werkzeug默认值)
hash_str = werkzeug.security.pbkdf2_hex(
    password="123456",
    salt=salt,
    iterations=600000,
    method="sha256"
)
# 拼接盐和哈希值,得到前缀后的内容
target_result = f"{salt}${hash_str}"
print(target_result)

说明

  • gen_salt是Werkzeug内部用于生成盐的方法,生成的是URL安全的Base64编码字符串,和generate_password_hash使用的盐格式完全一致
  • 手动生成的结果和原输出中pbkdf2:sha256:600000$之后的内容结构完全相同
  • 如果后续需要验证密码,需自行保存盐和哈希值,验证时用相同参数重新计算输入密码的哈希并对比;若无需特殊处理,更推荐保留完整前缀串,直接用check_password_hash完成验证,更简洁可靠

内容的提问来源于stack exchange,提问作者Parth Pawar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 09:05:11