본문 바로가기
Python/Python_basic

조건에 의한 비밀번호 생성예제

by Mr.DonyStark 2023. 11. 15.

□ any함수 : 한 개라도 참(True)일 경우 True 반환(일부 만족)
  all함수 : 전체가 참(True)일 경우 True 반환(모두 만족)
  내부 문자열 함수

 - isdigit() : 정수 포함여부

 - isupper() : 대문자 포함여부

 

*아래 예제는 예제일뿐 실제 비밀번호가 틀렸을시 생성 표기는 별도 보안에 유의하여 표시해야함

#예제 : 아래 조건과 같이 사용자 입력문자열(비밀번호)를 체크하시오

#사용자 비밀번호 입력
#조건1 : 비밀번호는 반드시 8자리 이상
#조건2 : 반드시 1개 이상의 대문자는 포함
#조건3 : 반드시 1개 이상의 숫자 포함

while True:            #비밀번호가 맞을 때까지 지속 진행을 위해 While 사용
    results = []
    input_pwd = input("비밀번호 입력 : ")
    if not any(i.isdigit() for i in input_pwd):  #any함수 + isdi
        results.append('비밀번호는 최소 1개 이상의 숫자가 포함되어야합니다.')   #입력한 값에 따른 결과를 results 리스트에 추가
    if not any(i.isupper() for i in input_pwd):
        results.append('비밀번호는 최소 1개 이상의 대문자가 포함되어야합니다.')   #입력한 값에 따른 결과를 results 리스트에 추가
    if len(input_pwd)<8:
        results.append('비밀먼호는 최소 8자리 이상이어야 합니다')    #입력한 값에 따른 결과를 results 리스트에 추가
    if len(results) == 0:
        print("비밀번호 형식이 맞습니다")
        break
    else:
        print("아래와 같이 비밀번호 조건이 맞지 않습니다")
        for txt in results:
            print("▶▶▶▶  ", txt)