Navicat 12+密码解密必须选用AES-128-CBC算法,对应navicat12+模式,密钥由硬编码字符串“libcckeylibcckey”及IV“libcciv libcciv ”派生,选错版本或Java环境低于1.8.0_151将导致乱码或失败。
直接解密本地保存的加密密码,不需要重置数据库账户或重新配置连接。
Navicat 12 及之后版本(包括 15、16)使用 AES-CBC 加密,密钥由固定 salt 和硬编码字符串派生。如果误选 navicat11 模式,解密结果全是乱码或空字符串。
16.0.3)navicat12+ 单选按钮,不能靠猜测1.8.0_151 或更高,否则 AES 密钥派生可能失败(JVM 默认策略限制)迁移时最常卡在“找不到加密密码字符串”。Navicat 不会明文存储密码,但会在以下两处留下加密值:
HKEY_CURRENT_USERSoftwarePremiumSoftNavicatConnections{connection_id}Password,右键导出为 .reg 后用文本编辑器打开,找 Password= 后的 Base64 字符串~/Library/Application Support/PremiumSoft/Navicat/Connections/(macOS)或 ~/.navicat/Connections/(Linux),文件是二进制格式,但可用工具直接读取;更稳妥的是先导出为 .ncx 文件(Navicat → 文件 → 导出连接)看似一键导入,实际有三个隐性条件决定是否成功:
.ncx 文件必须是 Navicat 原生导出的,手工修改或用其他工具生成的 XML 结构不兼容navicat11 的解密器处理,反之亦然真正麻烦的不是解密本身,而是跨平台时注册表路径不可用、配置目录位置不一致、以及 Java 默认字符集导致 .ncx 解析中断——这些细节不提前检查,就会卡在“导入成功但无结果”上。