Commit 52071f07 by DaiJiezhang

docs(auth): clarify password validation policy

parent 3f7c6557
...@@ -47,7 +47,7 @@ JWT 载有用户 ID、角色和 `authVersion`。每次访问受保护接口, ...@@ -47,7 +47,7 @@ JWT 载有用户 ID、角色和 `authVersion`。每次访问受保护接口,
使用 Spring Security `BCryptPasswordEncoder` 生成 `password_hash`,成本系数由配置控制(初始建议 12)。数据库只存哈希值,盐由 BCrypt 每次编码自动生成;不增加“加密后的明文密码”列,也不把初始密码写进迁移、日志、测试快照或接口响应。 使用 Spring Security `BCryptPasswordEncoder` 生成 `password_hash`,成本系数由配置控制(初始建议 12)。数据库只存哈希值,盐由 BCrypt 每次编码自动生成;不增加“加密后的明文密码”列,也不把初始密码写进迁移、日志、测试快照或接口响应。
只有开发者能在创建账号、为超级管理员已创建的禁用账号补设密码,或重置非开发者账号密码时输入新密码与确认密码;后端校验 12–72 字符、拒绝与用户名相同及常见弱密码。系统不提供本人改密入口,所有账号均通过开发者操作更新密码哈希和时间、递增 `auth_version` 并使旧会话失效。管理员重置不会回显或再次读取任何密码;`Jeddy` 的密码变更仍由受控数据库操作人工写入 BCrypt 哈希。 只有开发者能在创建账号、为超级管理员已创建的禁用账号补设密码,或重置非开发者账号密码时输入新密码与确认密码;后端仅校验密码长度为 12–72 字符,允许密码包含或等于用户名(包括 `Jeddy`。系统不提供本人改密入口,所有账号均通过开发者操作更新密码哈希和时间、递增 `auth_version` 并使旧会话失效。管理员重置不会回显或再次读取任何密码;`Jeddy` 的密码变更仍由受控数据库操作人工写入 BCrypt 哈希。
未来调整密码规则或 BCrypt 成本时,在开发者重置密码时检测 `passwordEncoder.upgradeEncoding(hash)` 并重写哈希;这让业务账号在下一次受控重置时逐步升级,无需知道旧密码或执行全表重置。 未来调整密码规则或 BCrypt 成本时,在开发者重置密码时检测 `passwordEncoder.upgradeEncoding(hash)` 并重写哈希;这让业务账号在下一次受控重置时逐步升级,无需知道旧密码或执行全表重置。
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment