3步找回Navicat加密连接密码:navicat_password_decrypt本地批量解密完全指南
2026/8/27 5:57:53 网站建设 项目流程

3步找回Navicat加密连接密码:navicat_password_decrypt本地批量解密完全指南

【免费下载链接】navicat_password_decrypt忘记navicat密码时,此工具可以帮您查看密码项目地址: https://gitcode.com/gh_mirrors/na/navicat_password_decrypt

navicat_password_decrypt 是一款 Navicat 密码解密工具:把 Navicat 里保存的加密连接串,或从 Navicat 导出的 .ncx 连接文件交给它,就能得到明文数据库密码。整个过程在本地完成,适合找回遗忘的测试库密码、迁移连接配置这类场景。

项目能力速览

这个工具围绕"从密文到明文"做了一件事,提供两种输入方式:

  • 输入单个 Navicat 加密密码串,点一下按钮返回明文
  • 导入 Navicat 导出的 .ncx 文件,一次性批量解密全部连接的密码
  • 自动识别 Navicat 11 与 12+ 两套加密算法,无需手动判断模式
  • 提供图形界面和代码调用两种入口,无桌面环境也能用
  • 全程本地运行,连接信息不出你的电脑

🚀 快速上手:从克隆到运行

环境要求很简单,全部是常见组件:

组件要求说明
JDK1.8+建议 1.8.0_151 及以上版本
Maven3.x用于编译和运行
Navicat11.2.7 / 12.1.15 / 15.1.17 / 16.0.3作者已实测通过这些版本

启动分两步,5 分钟内可跑起来:

git clone https://gitcode.com/gh_mirrors/na/navicat_password_decrypt cd navicat_password_decrypt && mvn compile

然后二选一启动图形界面:

mvn exec:java -Dexec.mainClass="MainIndexFrame"

或者直接在 IDE 里运行MainIndexFrame类(README 推荐的方式)。窗口打开后就是解密工具的主界面,上半区做单密码解密,下半区导入 ncx 文件。

使用方式详解

三种入口对应三种工作量:解密一个密码、解密一批连接、在自己的代码里解密。

单密码解密:粘贴密文直接查看

适用场景:你手上只有一个加密密码串,需要快速确认对应的明文。

  1. 按 Navicat 实际版本选中navicat11navicat12+单选框
  2. 把加密串(字母和数字组成的十六进制串)粘贴到上方输入框
  3. 点击"查看密码"按钮

预期结果:输入框内容直接替换为明文密码。版本选错时返回的会是乱码或空串,换一下单选框重输即可。

批量解密:一键导入 ncx 配置文件

适用场景:你要交接一批数据库连接,或核对多个环境的账号信息。

  1. 在 Navicat 中右键连接(或连接分组),选择"导出连接",得到.ncx文件
  2. 在工具中点击"选择文件"按钮,选中该.ncx文件
  3. 等待解析完成,无需其他操作

预期结果:下方文本区按行列出所有连接,每行格式为主机|端口|用户|连接类型 = 明文密码。工具会读取文件头部Connections节点的Ver属性自动判定算法版本(版本号 ≤ 1.1 走 Navicat 11 算法,否则走 12+ 算法),你不需要手动选择版本。

命令行解密:调用 DecodeNcx 工具类

适用场景:服务器上没有图形环境,或你想把解密步骤写进自己的脚本。

  1. 编译项目:mvn compile
  2. 引入util/DecodeNcx类,它的构造函数接收模式参数
  3. native11navicat12more构造后调用decode(密文)
DecodeNcx d = new DecodeNcx("native11"); System.out.println(d.decode("15057D7BA390"));

预期结果:控制台直接打印明文密码。这个类自带一个可运行的main方法,改完模式参数直接运行即可验证。

🔍 深入理解:两个版本算法差在哪

解密能否成功,取决于算法选对没有。Navicat 在 11 和 12 两个大版本之间更换了整套加密方案:

项目Navicat 11Navicat 12+
算法Blowfish(128 位)AES(128 位)
模式ECB + 逐块异或链接CBC + PKCS5 填充
密钥来源固定字符串做 SHA1 派生固定的 16 字节密钥和 IV
实现文件navicat/Navicat11Cipher.javanavicat/Navicat12Cipher.java

调用链很短:DecodeNcx.decode()按模式参数从工厂取对应解密器,再调用decryptString()完成解密。核心代码结构如下:

src/main/java/ ├── MainIndexFrame.java # GUI 入口(单个 + 批量) ├── enums/VersionEnum.java # 版本枚举:native11 / navicat12more ├── factory/NavicatCipherFactory.java # 按版本选择解密器 ├── navicat/Navicat11Cipher.java # Blowfish 解密实现 ├── navicat/Navicat12Cipher.java # AES 解密实现 └── util/DecodeNcx.java # 核心解密入口

注意:模式字符串要和枚举名严格一致——native11(Navicat 11)和navicat12more(Navicat 12 及以上),拼错会在工厂里抛出找不到解密器的异常。

❓ 常见问题

现象:点了"查看密码",出来的结果是乱码或空。原因:版本单选框和生成密文的 Navicat 版本不一致,11 与 12+ 的算法完全不同。 解法:切换另一个版本选项,重新粘贴密文点一次;如果不确定版本,走批量模式导入 ncx 文件,让工具按文件头自动识别。

现象:我只有 Navicat 里存好的连接,找不到"加密密码"这个东西。原因:密码以密文形式存在连接配置里,Navicat 界面不单独展示它。 解法:右键连接选择"导出连接"生成 .ncx 文件,再用工具的"选择文件"批量解密,输出里直接包含每个连接的明文密码。

现象:用老版本 JDK(1.8.0_151 以下)运行,解密结果异常。原因:早期 JDK 默认启用受限密码强度策略,影响加解密行为。 解法:切换到 JDK 1.8.0_151 或更高版本后重新编译运行(项目 README 明确建议 151 以上)。

🛡️ 使用边界与合规提示

这个工具只对你自己拿到的密文做本地解密,全程数据不出你的电脑。能否使用它,取决于你是否拥有对应数据库连接的授权。

可以做:

  • 恢复自己管理、自己配置过的数据库连接密码
  • 团队成员离职时交接自己名下的连接信息
  • 换电脑、重装系统前备份和迁移自己的连接配置

不应做:

  • 解密他人未经授权交付给你的连接文件
  • 拿解密出的密码访问超出你权限的生产环境
  • 把明文密码留在共享目录、聊天记录或代码仓库里

总结

navicat_password_decrypt 把"定位密文 → 选对算法 → 还原明文"这条链路压缩成了一次点击,并且把 Navicat 11 和 12+ 的算法差异封装在版本选择里,你不需要自己碰加密细节。如果你维护多个数据库连接、经常要交接或迁移配置,它值得放进常用工具箱。现在克隆仓库跑一遍MainIndexFrame,选一个你早已忘掉的测试库连接,验证一下解密结果。

【免费下载链接】navicat_password_decrypt忘记navicat密码时,此工具可以帮您查看密码项目地址: https://gitcode.com/gh_mirrors/na/navicat_password_decrypt

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询