업데이트로 돌아가기
UpdatedSep 2, 2026

Python Security Project — Updated!

파일 암호화 및 복호화 도구를 구현하는 Python 보안 프로젝트

공유

🔐 데스크톱 암호화 파일 암호화 및 복호화 도구

로컬 파일 시스템 자산을 인증된 대칭 암호화를 통해 보호하도록 설계된 프로덕션급 Python 데스크톱 보안 유틸리티입니다. 이 애플리케이션은 Tkinter로 구축된 반응형 그래픽 사용자 인터페이스(GUI), 독립적인 암호화 엔진, 구조화된 진단 로깅을 갖추고 있습니다.

암호화 로직

  • 암호화: 평문 + 비밀 키 ──> 암호문
  • 복호화: 암호문 + 동일한 비밀 키 ──> 평문

🚀 주요 기능

  • Tkinter 데스크톱 인터페이스: 네이티브 운영 체제 파일 선택기, 적응형 그리드 스케일링, 사용자 지정 활성 상태 색상 전환, 대화형 상태 알림을 갖춘 깔끔하고 반응형 그래픽 사용자 인터페이스(GUI).
  • 분리된 아키텍처: 시각적 표현 계층(CryptoAppGUI)과 핵심 백엔드 처리 알고리즘(MyCryptoProcessor) 간의 완전한 관심사 분리.
  • 인증된 암호화(AES-128): CBC 모드의 AES와 128비트 키를 기반으로 구축된 강력한 Fernet 사양을 활용하여 절대적인 데이터 기밀성과 암호화 무결성을 보장합니다.
  • 이중 대상 로깅 프레임워크: 휘발성 터미널 출력을 실시간 콘솔 메트릭을 동시에 출력하고 영구 감사 추적을 crypto_app.log에 기록하는 네이티브 로깅 구성으로 대체했습니다.
  • 런타임 오류 복원력: 경로 탐색 충돌을 방지하고 누락된 파일을 안전하게 처리하기 위해 엄격한 경로 정리, 문자열 살균 루틴, 세분화된 try-except 검증 범위를 설계했습니다.
  • UX 안전 게이트(입력 제한): 입력이 제한된 별도의 디렉터리 브라우저를 구현했습니다. 평문 선택기는 .txt 파일로만 보기를 제한하고, 암호문 선택기는 .encrypted 파일만 필터링하여 우발적인 선택 오류를 완전히 제거합니다.

🛠️ 기술 스택

  • 언어: Python 3.x
  • GUI 프레임워크: Tkinter / TTK(네이티브 구성 요소)
  • 암호화 엔진: cryptography(Fernet 사양)
  • 로깅 엔진: logging(네이티브 구성 요소)

📦 설치 및 설정

  1. 저장소 복제:

    git clone https://gitlab.com/rejithregi-group/SecurityProject.git
    cd SecurityProject
    
  2. 의존성 설치:

    pip install -r requirements.txt
    

🖥️ 사용법 및 워크플로

터미널에서 애플리케이션 창을 실행합니다:

python FileEncryptionDecryptionTool.py

일반적인 운영 워크플로

  1. 새 키 생성: 파란색 버튼을 클릭하여 안전한 .key 파일을 생성합니다. 네이티브 OS 프롬프트를 통해 안전하게 저장하세요. 경고: 이 키를 분실하면 암호화된 데이터를 복구할 수 없습니다.
  2. 대상 파일 암호화: 대상 평문 파일 행에서 "찾아보기..."를 클릭하고(.txt로 엄격히 필터링됨), 암호화 마스터 키를 선택한 후 녹색 실행 버튼을 누릅니다. 앱은 .encrypted 접미사가 붙은 보호된 복사본을 출력합니다.
  3. 대상 파일 복호화: 대상 암호문 파일 행에서 "찾아보기..."를 클릭하고(.encrypted 파일로 엄격히 필터링됨), 일치하는 검증 키를 선택한 후 차콜색 버튼을 실행하여 평문 자산을 디스크에 안전하게 복원합니다.

🔒 보안 운영 및 감사

이 유틸리티는 개발자 추적을 명확하게 유지하기 위해 자동화된 진단을 적극적으로 구현합니다:

  • 시스템 무결성 검사: 모든 파일 상호작용은 데이터 블록 플러싱과 안전한 메모리 정리 루프를 보장하기 위해 안전한 컨텍스트 관리자(with open) 내에서 실행됩니다.
  • 감사 로깅: 모든 세션 트랜잭션, 키 경로 매핑, 운영 암호화 결과는 crypto_app.log라는 영구 파일에 명시적으로 매핑됩니다.

👨‍💻 작성자

📜 라이선스

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다.

카테고리