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

如何在自托管sysPass中重置唯一管理员账户密码?

重置sysPass管理员密码(无密码重置功能时的解决方案)

你已经握有核心条件:持有主密码、完全访问数据库,还清楚sysPass的哈希机制——10轮BCrypt结合主密码生成用户密码哈希,那直接操作数据库就能解决问题,具体步骤如下:

1. 生成符合sysPass格式的新密码哈希

sysPass的用户密码哈希是将用户密码+主密码拼接后,通过10轮BCrypt算法生成的。为了安全,建议在本地用PHP脚本生成(毕竟sysPass是PHP项目,环境匹配度最高):

创建一个本地PHP文件,比如create_sysPass_hash.php,写入以下代码:

<?php
// 替换为你的实际主密码
$master_key = "你的主密码";
// 替换为你想要设置的新管理员密码
$new_admin_pass = "新管理员密码";

// sysPass的哈希生成逻辑:用户密码与主密码拼接后做10轮BCrypt
$hash_source = $new_admin_pass . $master_key;
$new_hash = password_hash($hash_source, PASSWORD_BCRYPT, ["cost" => 10]);

echo "生成的可直接使用的哈希:" . $new_hash;
?>

在本地PHP环境中运行这个脚本(比如命令行执行php create_sysPass_hash.php),得到以$2y$10$开头的BCrypt哈希字符串。

2. 更新数据库中的user_pass字段

登录你的数据库管理工具(phpMyAdmin、MySQL CLI等),找到sysPass对应的数据库,定位到用户表(通常是user或sp_user,可通过表结构确认,包含user_login、user_pass字段),执行更新语句:

-- 替换占位符为你的实际信息
UPDATE `你的用户表名`
SET `user_pass` = CAST('生成的新哈希字符串' AS VARBINARY)
WHERE `user_login` = '管理员账户的登录名';

如果用图形化工具操作,直接找到管理员用户的记录,把生成的哈希字符串填入user_pass字段即可(工具会自动处理varbinary类型转换)。

3. 验证登录

操作完成后,打开sysPass登录页面,用新管理员密码和主密码尝试登录,确认是否能正常进入系统。

重要提醒:操作前务必备份数据库,避免因误操作导致数据损坏。

内容的提问来源于stack exchange,提问作者n.r.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:36:34