이 프로젝트는 교육 목적의 데모 애플리케이션으로, 비밀번호의 중요성과 보안 강도를 시각적으로 전달하는 데 초점을 둡니다.
학생들이 비밀번호의 강약에 따라 해커가 얼마나 쉽게 뚫을 수 있는지를 직관적으로 이해할 수 있도록 돕기 위해 만들어졌습니다.
-
비밀번호 강도 측정
- 입력한 비밀번호에 대해 길이, 특수문자 포함 여부, 대소문자, 숫자 포함 여부 등을 평가해 점수화합니다.
- 사전 기반 공격 방지를 위해 흔한 비밀번호 리스트(
common_passwords.txt)와 비교하는 기능도 포함합니다.
-
해킹 시뮬레이션
- 비밀번호가 약할수록 해커 캐릭터가 빠르게 뚫는 애니메이션을 보여줍니다.
- 강력한 비밀번호일수록 해커가 시간이 오래 걸리거나 실패하는 연출을 통해 강도 차이를 시각적으로 보여줍니다.
-
교육적 피드백 제공
- 사용자가 입력한 비밀번호에 대해 피드백을 텍스트 및 시각 효과로 제공합니다.
- 예: "이 비밀번호는 너무 짧아요", "일반적으로 많이 사용되는 단어입니다" 등
MainFrame.java: 전체 UI 구성 및 입력 처리PasswordStrengthChecker.java: 비밀번호 평가 로직HackerAnimationPanel.java: 시뮬레이션 및 애니메이션 표현DictionaryLoader.java: 사전 파일 로드 및 체크
PassCodeDemo/
├── src/
│ └── passwordsim/
│ ├── Main.java
│ ├── MainFrame.java
│ ├── PasswordStrengthChecker.java
│ ├── HackerAnimationPanel.java
│ └── DictionaryLoader.java
└── resources/
└── common_passwords.txt
javax.swing.Timer를 활용하여 해커 캐릭터 이동, 진행바 변화 등을 표현JPanel의paintComponent()오버라이드로 커스텀 그래픽 가능
이 프로젝트는 보안 교육에 흥미를 더하고, 비밀번호 관리의 중요성을 쉽게 이해시키기 위한 훌륭한 도구가 될 수 있습니다.
추가적인 기능 확장(예: 비밀번호 생성기, 해시 시뮬레이션 등)도 이후 고려 가능합니다.