3.0 KiB
密码解密工具
从侧边栏「密码解密」,选择 Navicat 预设或自定义参数。选择 Navicat 12 会自动填入 AES / CBC / PKCS7、UTF-8 Key libcckeylibcckey、UTF-8 IV libcciv libcciv (末尾包含空格)、Hex 密文和 UTF-8 结果。所有参数可查看和修改;修改后自动切换为「自定义」,重新选择 Navicat 12 即可恢复标准值。
支持 AES(16/24/32 字节 Key)、DES(8 字节)、3DES(24 字节)和 Blowfish(4–56 字节)。CBC、ECB 可使用 PKCS7、ZeroPadding 或 NoPadding;CTR、CFB、OFB 自动使用 NoPadding。CFB 使用完整分组反馈,CTR 使用大端计数器。ECB 不使用 IV;其他模式的 IV 长度为 AES 16 字节、其他算法 8 字节。
Key / IV 编码可选 UTF-8、Hex、Base64,页面显示解码后的字节数。UTF-8 Key / IV 的首尾空白不会被移除。密文支持 Hex、标准 Base64;结果支持 UTF-8、Hex、Base64。ZeroPadding 会移除所有末尾零字节,需要原始字节时使用 NoPadding。
粘贴连接配置中的密码,例如 connections.ncx 的 Password 属性值,不包含引号。结果支持复制和清空,修改密文或参数、切换预设或离开页面都会清除原结果。Key 和 IV 不保存到浏览器持久存储。
- Navicat 11:SHA-1(
3DC5CA39) 派生 Blowfish 密钥,支持完整分组与末尾不足 8 字节的数据。空密文表示空密码。 - Navicat 12:AES-128-CBC / PKCS#7,密钥为
libcckeylibcckey,IV 为libcciv libcciv(包含末尾空格)。密文至少 32 个十六进制字符,长度必须为 32 的倍数。
Navicat 11 的参数仅供查看,仍使用专用反馈算法,不能替换为普通 Blowfish CBC。允许大小写十六进制及首尾空白;不支持整份 NCX 文件上传或需要用户导出口令的其他加密格式。这些格式不带完整性认证,解密成功不能证明密码正确。
通用接口为 POST /api/v1/tools/decrypt,请求包含 algorithm、mode、padding、key、keyEncoding、iv、ivEncoding、ciphertext、inputEncoding 和 outputEncoding,返回 {"plaintext":"..."}。编码值为 UTF8、Hex 或 Base64;填充值为 PKCS7、ZeroPadding 或 None。例如:
{"algorithm":"AES","mode":"CBC","padding":"PKCS7","key":"libcckeylibcckey","keyEncoding":"UTF8","iv":"libcciv libcciv ","ivEncoding":"UTF8","ciphertext":"f03a1418eb2928a948cc8c71d92edf1c","inputEncoding":"Hex","outputEncoding":"UTF8"}
原接口 POST /api/v1/tools/navicat/decrypt 保持兼容,请求 {"version":12,"ciphertext":"..."},返回 {"password":"..."}。两个接口均要求个人会话及 CSRF 校验,拒绝 API Token 调用。输入与结果不写入配置、审计或浏览器持久存储,响应禁止缓存。
算法测试使用 NIST SP 800-38A 各 AES 模式向量、Blowfish 公开向量及 Node.js/OpenSSL 独立生成的固定样本,覆盖多种 Key 长度、编码、填充、中文、emoji 和尾部数据;未使用真实 Navicat 客户端导出文件验证。