Navicat 연결 정보에서 비밀번호를 복구하는 오픈소스 도구 소개
비밀번호를 잊어버렸을 때, 이 도구는 빠르고 안전하게 저장된 데이터베이스 연결 정보를 복원할 수 있도록 도와줍니다. 개발자 및 데이터 관리자는 종종 Navicat를 통해 여러 데이터베이스에 접근하는데, 이 과정에서 저장된 비밀번호가 중요 자산이 됩니다. 해당 비밀번호를 분실했을 경우, 이 오픈소스 프로젝트는 신속하고 정확한 복구 기능을 제공합니다.
지원되는 버전은 Navicat 11부터 16까지의 주요 릴리즈이며, 그래픽 인터페이스와 명령줄 모드 모두 제공되어 사용자의 작업 환경에 맞게 선택 가능합니다.
주요 특징
- 다중 버전 호환성: VersionEnum을 통해 11.2.7, 12.1.15, 15.1.17, 16.0.3 등 다양한 버전을 인식하고, 각각의 암호화 방식에 맞는 해독 알고리즘을 자동으로 적용합니다.
- 두 가지 해독 모드: 단일 암호 해독과 .ncx 파일 일괄 처리를 지원하며, 하나의 연결 정보만 확인하거나 전체 설정 파일을 분석해 모든 비밀번호를 추출할 수 있습니다.
- 보안 및 가벼운 구조: Java로 작성된 크로스 플랫폼 애플리케이션으로, 설치 없이 바로 실행 가능하며, 로컬에서 완전히 처리되므로 민감한 정보가 서버로 전송되지 않습니다.
사용 방법: 세 단계로 비밀번호 찾기
GUI 인터페이스 사용 절차
- 실행:
MainIndexFrame클래스를 실행하여 메인 창을 열어주세요. - 버전 선택: 사용 중인 Navicat 버전에 따라 드롭다운 메뉴에서
navicat11또는navicat12+를 선택합니다. - 해독 수행: 암호 입력 후 비밀번호 보기 버튼 클릭 또는 파일 불러오기를 통해 .ncx 파일을 업로드하면 결과가 즉시 표시됩니다.
명령줄 실행 방법 다량의 연결 정보를 한 번에 처리해야 할 경우, 다음 명령어를 사용하세요:
java -cp navicat-password-decrypt.jar util.DecodeNcx [암호] [버전]
또는 .ncx 파일을 직접 분석하려면:
java -cp navicat-password-decrypt.jar util.DecodeNcx -f /path/to/config.ncx
기술적 배경: 어떻게 작동하는가?
Navicat는 고유 키를 기반으로 한 AES 기반 암호화 방식을 사용하며, 각 버전마다 다른 초기화 벡터와 키 스케줄링 방식을 적용합니다. 본 도구는 이러한 차이점을 분석하고, 각 버전별 맞춤형 복호화 로직을 재현하여 정확한 평문 복원을 보장합니다.
핵심 클래스 구성:
NavicatCipherFactory: 버전에 따라 적절한 해독기 생성Navicat11Cipher,Navicat12Cipher: 버전별 전용 복호화 구현체DecodeNcx: 명령줄 기반 해독 처리 담당MainIndexFrame: GUI 시작점
자주 묻는 질문
Q: "버전 불일치" 오류가 발생하면 어떻게 해야 하나요?
A: 현재 사용 중인 Navicat 버전을 확인하세요. 11.x 계열은 navicat11 옵션, 12.x 이상은 navicat12+를 선택하시면 됩니다. 확신이 없다면 두 가지 모두 시도해 보세요.
Q: .ncx 파일을 불러왔지만 비밀번호가 나타나지 않아요. A: 파일이 암호화되어 있거나 손상되었을 수 있습니다. 내보낸 .ncx 파일은 반드시 암호화되지 않은 상태여야 하며, 암호화된 형식은 직접 해석 불가능합니다.
Q: Mac용 Navicat 비밀번호도 복구 가능한가요? A: 네, 동일한 암호화 알고리즘이 사용되며 운영체제에 영향을 받지 않으므로, 모든 플랫폼에서 동일하게 작동합니다.
다운로드 및 사용 시작
공식 저장소에서 소스 코드를 가져오세요:
git clone https://gitcode.com/gh_mirrors/na/navicat_password_decrypt
Maven 기반 빌드 스크립트와 함께 제공되며, docs 폴더에는 고급 설정 및 대량 처리 가이드가 포함되어 있습니다.
⚠️ 주의: 본 도구는 법적으로 소유한 연결 정보 복구 용도로만 사용되어야 하며, 타인의 비밀번호를 무단으로 해독하거나 접근하는 행위는 금지됩니다.