# MeshRay 密码重置功能 - 最新更新 **更新时间**: 2026-03-25 **版本**: v2.0.0+ --- ## 🎉 重要更新 ### 之前:需要独立的 reset-password.exe ❌ **旧方式**: ```bash # 需要先编译独立工具 go build -o reset-password.exe cmd/reset-password/main.go .\reset-password.exe ``` ### 现在:直接集成在 meshray.exe 中 ✅ **新方式**: ```bash # 直接使用主程序命令 .\meshray.exe reset-password ``` --- ## 📋 使用方法 ### 方法 1: 自动生成随机密码 ```powershell cd E:\Project\MeshRay .\meshray.exe reset-password ``` **输出**: ``` MeshRay - 重置管理员密码 ========================= ======================================== ✅ 管理员密码已重置 ======================================== 用户名:admin 新密码:oZb18/up9If/aCuQ **************************************** ⚠️ 请妥善保管密码,建议登录后立即修改 ======================================== ``` --- ### 方法 2: 手动指定新密码 ```powershell .\meshray.exe reset-password -p "MyNewPassword123" ``` **参数**: - `-p`: 指定新密码 - `--password`: 同上(完整形式) --- ## 🔧 技术实现 ### 代码位置 **文件**: [`cmd/meshray/main.go`](file://e:/Project/MeshRay/cmd/meshray/main.go) **关键代码**: ```go func main() { // 检查命令行参数 if len(os.Args) > 1 && os.Args[1] == "reset-password" { runResetPassword() return } // ... 正常启动流程 } // runResetPassword 重置管理员密码 func runResetPassword() { // 1. 加载配置 cfg, _ := config.Load("") // 2. 连接数据库 store, _ := store.New(cfg.Database.Path) defer store.Close() // 3. 创建用户服务 userService := service.NewUserService(store) // 4. 生成或使用指定密码 var newPassword string if len(os.Args) > 2 && (os.Args[2] == "-p" || os.Args[2] == "--password") { newPassword = os.Args[3] } else { newPassword = service.GenerateRandomPassword(16) } // 5. 重置密码 userService.ResetAdminPassword(newPassword) // 6. 输出结果 fmt.Println("✅ 管理员密码已重置") fmt.Printf("新密码:%s\n", newPassword) } ``` --- ## ✅ 测试验证 ### 测试 1: 自动生成密码 ```powershell PS E:\Project\MeshRay> .\meshray.exe reset-password ✅ 编译成功! 新密码:oZb18/up9If/aCuQ ``` ### 测试 2: 指定密码 ```powershell PS E:\Project\MeshRay> .\meshray.exe reset-password -p "Test123!" ✅ 编译成功! 新密码:Test123! ``` --- ## 🆚 对比 | 特性 | 旧方式 (独立工具) | 新方式 (集成命令) | |------|------------------|------------------| | **编译** | ❌ 需单独编译 | ✅ 无需额外编译 | | **文件数** | ❌ 2 个 exe 文件 | ✅ 1 个 exe 文件 | | **使用便利性** | ⭐⭐ | ⭐⭐⭐⭐⭐ | | **维护成本** | 高 | 低 | | **发现性** | 低(容易忘记) | 高(meshray 自带) | --- ## 📝 完整文档 详细文档请查看:[`README-重置密码.md`](file://e:/Project/MeshRay/README-重置密码.md) --- ## 💡 常见问题 ### Q: 运行时才能用吗? **A**: 是的!只要 `meshray.exe` 存在即可使用,无论是否在运行。 ### Q: 会影响正在运行的服务吗? **A**: 不会!密码立即生效,已登录的会话不受影响。 ### Q: 还需要 reset-password.exe 吗? **A**: ❌ 不需要了!已经集成到主程序中。 --- **更新完成!** 🎉