返回 Bug 清单
BUG-0100project-09高已修复python-deps-compat
passlib[bcrypt] 与 bcrypt 5.x 不兼容
发现:2026-09-30验证:2026-10-27置信度:85%
症状
注册后无法登录,密码验证永远返回 False。([cursor_202606072236.md:803](file://d:/chemindra/cursor_202606072236.md#L803))
根因
`requirements.txt` 声明 `passlib[bcrypt]>=1.7.4`,pip 安装时拉取了 bcrypt 5.x([cursor_202606072236.md:379](file://d:/chemindra/cursor_202606072236.md#L379) 显示 `bcrypt==5.0.0`)。bcrypt 5.x 的哈希格式(`$2b$` 前缀)变化,passlib 的 `CryptContext(schemes=["bcrypt"])` 无法识别新的 bcrypt 哈希。
修复方案
(`commit 1d6a90d`):
- 从 `requirements.txt` 移除 `passlib[bcrypt]`,改用 `bcrypt>=4.0.0`
- `security.py` 使用 `bcrypt.hashpw()` / `bcrypt.checkpw()` 替代 `pwd_context.hash()` / `pwd_context.verify()`
修复命令
(`commit 1d6a90d`):
- 从 `requirements.txt` 移除 `passlib[bcrypt]`,改用 `bcrypt>=4.0.0`
- `security.py` 使用 `bcrypt.hashpw()` / `bcrypt.checkpw()` 替代 `pwd_context.hash()` / `pwd_context.verify()`错误签名
`requirements.txt` 声明 `passlib[bcrypt]>=1.7.4`,pip 安装时拉取了 bcrypt 5.x([cursor_202606072236.md:379](file://d:/chemindra/cursor_202606072236.md#L379) 显示 `bcrypt==5.0.0`)。bcrypt 5.x 的哈希格式(`$2b$` 前缀)变化,pas技术信息
来源项目
project-09
涉及文件
apps/server/app/core/security.py, apps/server/requirements.txt
标签
python-deps-compat, project-09