返回 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