Guía Técnica para el Descifrado de Contraseñas de Conexión en Navicat

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

Etiquetas: Navicat java AES Blowfish Descifrado

Publicado el 6-30 06:03