비밀번호 생성기 구현
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- 개발자, 보안 엔지니어, 일반 사용자
- 초보자 수준의 프로그래밍 지식 필요 (Python 기초 이해)
핵심 요약
- 사용자 입력 검증을 통해 길이 불일치 시 오류 메시지 출력
random.choices()
와string
모듈을 활용한 다양한 문자 종류 조합- _shuffle() 함수로 생성된 비밀번호 순서 무작위화
섹션별 세부 요약
1. 입력 수집
- 사용자로부터
len
,let
,num
,sym
변수 입력 int(input())
함수로 입력값을 정수형 변환- 입력값이 0 이상인지 검증 없음
2. 입력 검증 로직
if len != let + num + sym
조건 검사- 조건 불일치 시
"the number of characters should be equal..."
오류 메시지 출력 - 조건 충족 시
elif
분기 진입
3. 비밀번호 생성
random.choices(string.ascii_letters, k=let)
로 영문자 추출random.choices(string.digits, k=num)
로 숫자 추출random.choices(string.punctuation, k=sym)
로 특수문자 추출+
연산자로 생성된 리스트를 통합
4. 결과 출력
random.shuffle(password)
로 리스트 순서 무작위화print("your password is:")
로 최종 비밀번호 출력- 비밀번호 생성 시 암호화 처리 없음
결론
- 보안 강화를 위해
secrets
모듈 대체 권장 (예:secrets.choice()
) - 사용자 입력 검증을 통해 예기치 못한 값 처리 가능
string
모듈의ascii_letters
,digits
,punctuation
은 Python 3.8 이상 호환