# NavicatPassword **Repository Path**: dingshuanglei/NavicatPassword ## Basic Information - **Project Name**: NavicatPassword - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2026-01-22 - **Last Updated**: 2026-01-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NavicatPassword NavicatPassword 是一款专门用于解密 Navicat 数据库连接密码的工具,基于 Avalonia 框架开发,支持跨平台运行。 ## 功能特性 - 📁 **配置文件解析**:支持读取 Navicat 的 `.ncx` 配置文件,自动提取所有连接信息 - 🔐 **密码解密**:使用内置算法解密 Navicat 加密的密码 - ⚡ **批量解密**:支持一键解密所有连接的密码 - 🎯 **单个解密**:支持单独解密选中的连接密码 - 📋 **手动解密**:支持手动输入密文进行解密 - 💾 **配置保存**:自动保存用户的解密设置 - 🎨 **现代界面**:基于 Avalonia 框架的现代化 UI,支持深色模式 ## 系统要求 - **操作系统**:Windows 10/11, macOS, Linux - **.NET 版本**:.NET 8.0 或更高版本 - **CPU**:1GHz 或更快的处理器 - **内存**:至少 1GB RAM - **存储空间**:至少 50MB 可用空间 ## 安装说明 ### 从源码构建 1. 克隆仓库: ```bash git clone https://github.com/dingshuanglei/NavicatPassword.git ``` 2. 进入项目目录: ```bash cd NavicatPassword ``` 3. 构建项目: ```bash dotnet build -c Release ``` 4. 运行应用: ```bash dotnet run --project NavicatPassword/NavicatPassword.csproj ``` ## 使用方法 ### 方法一:通过配置文件导入 1. 点击「选择文件」按钮 2. 浏览并选择 Navicat 的配置文件(导出文件) 3. 应用会自动解析文件并显示所有连接信息 4. 勾选「批量解密」选项可自动解密所有密码 5. 或选择特定连接后点击「解密选中」按钮 ### 方法二:手动解密 1. 在「密文」输入框中粘贴 Navicat 加密的密码 2. 点击「解密」按钮 3. 解密后的明文密码会显示在「明文」输入框中 ## 技术栈 - **前端框架**:Avalonia UI - **后端语言**:C# - **MVVM 框架**:CommunityToolkit.Mvvm - **加密算法**:AES-128-CBC - **数据存储**:SQLite ## 核心功能实现 ### 密码解密算法 项目使用以下算法解密 Navicat 密码: ```csharp // 解密核心代码 private static string DecryptNavicatPassword(byte[] cipherBytes) { byte[] key = Encoding.UTF8.GetBytes("libcckeylibcckey"); byte[] iv = Encoding.UTF8.GetBytes("libcciv libcciv "); using Aes aes = Aes.Create(); aes.Mode = CipherMode.CBC; aes.Padding = PaddingMode.PKCS7; aes.Key = key; aes.IV = iv; ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV); byte[] plainBytes = decryptor.TransformFinalBlock(cipherBytes, 0, cipherBytes.Length); return Encoding.UTF8.GetString(plainBytes); } ``` ### 配置文件解析 项目支持解析 Navicat 的 XML 格式配置文件: ```csharp // 解析配置文件代码 var doc = XDocument.Parse(content); var connectionElements = doc.Descendants("Connection"); foreach (var element in connectionElements) { var connection = new ConnectionViewModel { ConnectionName = element.Attribute("ConnectionName")?.Value ?? "", ConnType = element.Attribute("ConnType")?.Value ?? "", Host = element.Attribute("Host")?.Value ?? "", Port = element.Attribute("Port")?.Value ?? "", Database = element.Attribute("Database")?.Value ?? "", DatabaseFileName = element.Attribute("DatabaseFileName")?.Value ?? "", UserName = element.Attribute("UserName")?.Value ?? "", Password = element.Attribute("Password")?.Value ?? "", }; // ... } ``` ## 项目结构 ``` NavicatPassword/ ├── Assets/ # 应用资源文件 ├── Models/ # 数据模型 ├── Services/ # 服务层 ├── Utils/ # 工具类 ├── ViewModels/ # 视图模型 ├── Views/ # 视图 ├── App.axaml # 应用配置 ├── Program.cs # 应用入口 └── NavicatPassword.csproj # 项目配置 ``` ## 注意事项 - 本工具仅用于个人学习和忘记密码时的恢复,请勿用于非法用途 - 使用本工具前,请确保你有权访问和查看相关密码信息 - 解密过程在本地进行,不会将任何数据发送到网络 ## 贡献指南 1. Fork 本仓库 2. 创建你的特性分支 (`git checkout -b feature/amazing-feature`) 3. 提交你的更改 (`git commit -m 'Add some amazing feature'`) 4. 推送到分支 (`git push origin feature/amazing-feature`) 5. 打开一个 Pull Request ## 许可证 本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件 ## 免责声明 本工具仅供学习和个人使用,作者不对任何因使用本工具而导致的问题负责。使用本工具即表示你同意遵守相关法律法规。 --- **温馨提示**:请妥善保管好你的数据库密码,定期备份重要数据!