第48批(2/2):网页改密强度对齐游戏+实时校验+成功面板留屏;容错解盐修脏盐玩家网页端恒密码错误;bing壁纸代理地址补api前缀

- core.php: 新增 pwdRuleError(6-20位+大写+小写+数字,与游戏 PasswordUtils.validate 同一把尺子)
  与 saltDecode(镜像Java清洗,strict解码前先剔除非base64字符)
- account.php: acctChangePassword 套用 pwdRuleError;acctPwdCheck 改走 saltDecode
- sync.php: changePassword/resetPassword 套用 pwdRuleError;changePassword 老密码校验改走 saltDecode
- player.php: 改密弹窗加实时4项校验清单(oninput更新✓/✗,全绿才可提交);
  成功后不关弹窗,展示明文新密码+复制按钮+同步说明(供截屏保存),保留 notifyJavaSync
- wallpaper.php: bing/NASA 代理地址补 api/ 前缀(原相对路径经前端路由转发后404);
  缓存键 bing->bing_v2(旧6h缓存存着坏URL,版本化立即生效)
This commit is contained in:
ypsdf1
2026-10-23 11:48:27 +08:00
parent d0cdadd29d
commit a0aeabf22d
5 changed files with 104 additions and 20 deletions
+9 -6
View File
@@ -4683,7 +4683,9 @@ function resetPassword() {
if (!$resetToken) error('缺少reset_token参数');
if (!$newPassword) error('缺少new_password参数');
if (strlen($newPassword) < 6) error('密码长度至少6位');
// ★第48批#245:与游戏 PasswordUtils.validate 同一把尺子(6-20位+大写+小写+数字)
$ruleErr = pwdRuleError($newPassword);
if ($ruleErr !== null) error($ruleErr);
$db = getDB();
@@ -4839,9 +4841,10 @@ function changePassword() {
error('缺少必要参数');
}
// 验证新密码格式
if (strlen($newPwd) < 6 || strlen($newPwd) > 20) {
error('密码长度必须为6-20位');
// ★第48批#245:与游戏 PasswordUtils.validate 同一把尺子(6-20位+大写+小写+数字)
$ruleErr = pwdRuleError($newPwd);
if ($ruleErr !== null) {
error($ruleErr);
}
$db = getDB();
@@ -4854,8 +4857,8 @@ function changePassword() {
error('玩家不存在');
}
// 验证旧密码
$saltBytes = base64_decode($row['salt'], true);
// 验证旧密码(★第48批#244:容错解盐,脏盐玩家也能在网页改密)
$saltBytes = saltDecode($row['salt']);
if ($saltBytes === false || $saltBytes === '') {
error('密码盐值无效');
}