Requisitos del Sistema y Compilación
Para desplegar la utilidad de desencriptación de Navicat, asegúrese de tener configurado:
- JDK 1.8 o superior (preferiblemente 1.8.0_151+)
- Apache Maven 3.0+
- Sistema operativo: Windows, macOS o Linux
Clone el repositorio y compile el proyecto:
git clone https://gitcode.com/gh_mirrors/na/navicat_password_decrypt
cd navicat_password_decrypt
mvn -Dmaven.repo.local=./.m2_local clean package
Mecanismos de Cifrado por Versión
El núcleo del sistema se adapta a las variaciones criptográficas utilizadas por Navicat a lo largo de sus versiones:
| Versión de Navicat | Algoritmo | Generación de Clave | Modo de Operación |
|---|---|---|---|
| 11 e inferior | Blowfish | Hash SHA1 | ECB |
| 12 y superior | AES-128 | Clave estática embebida | CBC |
Métodos de Ejecución
La aplicación dispone de dos interfaces de intreacción: una gráfica (GUI) y otra por línea de comandos (CLI).
Interfaz Gráfica
Ideal para consultas puntuales. Permite pegar la cadena cifrada o importar el archivo de conexión (NCX) directamente.
java -cp target/navicat-password-decrypt-1.0.jar MainIndexFrame
Línea de Comandos (CLI)
Optimizada para flujos de trabajo automatizados y procesos por lotes.
java -cp target/navicat-password-decrypt-1.0.jar util.DecodeNcx -f conexion.ncx -v 12
Parámetros disponibles:
-f: Ruta del archivo NCX.-v: Versión del cliente Navicat (11 o 12+).-s: Cadena de texto cifrada directa.
Casos de Uso y Automatización
Migración Masiva de Conexiones
Para extraer múltiples credenciales exportadas desde Navicat, se puede emplear el siguiente script de automatización:
#!/bin/bash
# Script para desencriptar múltiples archivos NCX
VER_NAVICAT="12"
DIR_EXPORT="./credenciales_claras"
mkdir -p "$DIR_EXPORT"
for archivo_ncx in *.ncx; do
if [ -f "$archivo_ncx" ]; then
echo "Procesando configuración: $archivo_ncx"
java -cp target/navicat-password-decrypt-1.0.jar util.DecodeNcx \
-f "$archivo_ncx" -v "$VER_NAVICAT" \
> "$DIR_EXPORT/${archivo_ncx%.ncx}_clave.txt"
fi
done
echo "Extracción masiva finalizada en $DIR_EXPORT"
Recuepración desde el Registro del Sistema
Las contraseñas cifradas pueden obtenerse directamente de las configuraciones del sistema operativo:
- Windows:
HKEY_CURRENT_USER\Software\PremiumSoft\Navicat\Servers - macOS:
~/Library/Preferences/com.prect.NavicatPremium.plist
Higiene de Datos y Limpieza
Tras finalizar las operaciones de recuperación de credenciales, es imperativo eliminar los archivos temporales que contienen datos sensibles:
# Eliminación segura de rastros digitales
find . -name "*.tmp_ncx" -type f -delete
rm -rf ./tmp_workdir/
> ~/.bash_history
Resolución de Incidencias
| Síntoma | Causa Probable | Solución |
|---|---|---|
| Salida con caracteres ilegibles | Versión de Navicat incorrecta | Alternar entre los modos de versión 11 y 12+ |
| Error al leer NCX | Archivo corrupto o formato inválido | Re-exportar el archivo desde Navicat |
| Resultado vacío | Cadena de entrada truncada | Verificar que la cadena comience con el prefijo "01" |
Arquitectura del Código
src/main/java/
├── enums/
│ └── VersionEnum.java # Definición de versiones soportadas
├── factory/
│ └── NavicatCipherFactory.java # Fábrica de selectores de algoritmos
├── navicat/
│ ├── Navicat11Cipher.java # Implementación Blowfish
│ ├── Navicat12Cipher.java # Implementación AES-128
│ └── NavicatChiper.java # Interfaz base de cifrado
├── util/
│ ├── DecodeNcx.java # Controlador CLI
│ └── StringUtil.java # Utilidades de texto
└── MainIndexFrame.java # Punto de entrada de la interfaz gráfica