[Python]비밀번호(문자열) 검증하기

사용자가 입력한 문자열의 유효성을 검사하는 예제를 알아보자.

import re

# 방법1
while True:
    pw = input("비밀번호를 입력하세요. : ")
    if re.match('.*[0-9]+.*', pw) and re.match('.*[A-Z]+.*', pw) and len(pw) >= 8:
        print("비밀번호 형식이 맞습니다.")
        break
    print("비밀번호 형식이 맞지않습니다.")

    
# 방법2    
while True:
    print()
    result = []
    pw = input("비밀번호를 입력하세요. : ")
    print()
    
    if not any([i.isdigit() for i in pw]):
        result.append("숫자가 최소 1개 이상 포함되어야 합니다.")
    
    if not any([i.isupper() for i in pw]):
        result.append("대문자가 최소 1개 이상 포함되어야 합니다.")        
        
    if len(pw) < 8 :
        result.append("최소 8자리 이상이어야 합니다.")

    if len(result) == 0:
        print("비밀번호 형식이 맞습니다.")
        break
    else:
        print("비밀번호 형식이 아래와 같이 맞지 않습니다.")
        for txt in result:
            print("-->", txt)  


## 결과
비밀번호를 입력하세요. : abc
비밀번호 형식이 맞지않습니다.
비밀번호를 입력하세요. : abc1
비밀번호 형식이 맞지않습니다.
비밀번호를 입력하세요. : abc1A
비밀번호 형식이 맞지않습니다.
비밀번호를 입력하세요. : abcdfa1
비밀번호 형식이 맞지않습니다.
비밀번호를 입력하세요. : abcdeaA1
비밀번호 형식이 맞습니다.

비밀번호를 입력하세요. : aaa

비밀번호 형식이 아래와 같이 맞지 않습니다.
--> 숫자가 최소 1개 이상 포함되어야 합니다.
--> 대문자가 최소 1개 이상 포함되어야 합니다.
--> 최소 8자리 이상이어야 합니다.

비밀번호를 입력하세요. : aaa1

비밀번호 형식이 아래와 같이 맞지 않습니다.
--> 대문자가 최소 1개 이상 포함되어야 합니다.
--> 최소 8자리 이상이어야 합니다.

비밀번호를 입력하세요. : aaa1111A

비밀번호 형식이 맞습니다.

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다