정규 표현 식 을 사용 하여 암호 의 강약 을 판단 합 니 다.
def password_level(password):
weak = re.compile(r'^((\d+)|([A-Za-z]+)|(\W+))$')
level_weak = weak.match(password)
level_middle = re.match(r'([0-9]+(\W+|\_+|[A-Za-z]+))+|([A-Za-z]+(\W+|\_+|\d+))+|((\W+|\_+)+(\d+|\w+))+',password)
level_strong = re.match(r'(\w+|\W+)+',password)
if level_weak:
print 'password level is weak',level_weak.group()
else:
if (level_middle and len(level_middle.group())==len(password)):
print 'password level is middle',level_middle.group()
else:
if level_strong and len(level_strong.group())==len(password):
print 'password level is strong',level_strong.group()
해명 해 봐.약 한 비밀번호:모두 숫자,기호,자모
중간 비밀번호:숫자 에 기호,숫자 에 알파벳,알파벳 에 기호
강 한 비밀번호:세 개의 혼합.
나 는 대소 문 자 를 구분 하지 않 고 관심 있 는 것 은 스스로 쓸 수 있 기 를 바란다.문 제 는\w 에 나타난다.왜냐하면\w 등가 와[A-Za-z0-9]그래서 초기 에\W 를 통 해 하강 선 을 포함 하 는 문자열 과 일치 하지 않 습 니 다.
중간 비밀 번 호 를 살 펴 보 겠 습 니 다.숫자 에 기호 나 알파벳 을 더 하거나 65343°한 그룹 입 니 다.알파벳 에 기호 나 밑줄 또는 기 호 는 한 그룹 입 니 다.기호 나 밑줄 에 알파벳 이나 숫자 를 더 하면 한 그룹 입 니 다.저 는 이 안의 코드 가 틀린 것 같 지만 테스트 를 통 해 잘못된 점 을 발견 하지 못 했 습 니 다.먼저 이 버 전 0.0.1 을 사용 하 겠 습 니 다.
테스트 코드
if __name__ == '__main__':
passwords = ('11','aa','LL','1a','1_','a_','a1','_1','*a','1a_','1a<')
for pw in passwords:
password_level(pw)
'''----------------------output------------------------
#password level is weak 11
#password level is weak aa
#password level is weak LL
#password level is middle 1a
#password level is middle 1_
#password level is middle a_
#password level is middle a1
#password level is middle _1
#password level is middle *a
#password level is strong 1a_
#password level is strong 1a<
'''
위 에서 말씀 드 린 것 은 정규 표현 식 으로 암호 의 강약 을 판단 하 는 인 스 턴 스 코드 입 니 다.도움 이 되 셨 으 면 좋 겠 습 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
awk 상용 명령awk 는 모든 입력 줄 을 하나의 기록 으로 인식 하고 그 줄 의 모든 단어 도 메 인 을 하나의 필드 로 인식 합 니 다. ARGC 명령 줄 에 awk 스 크 립 트 가 들 어 오 는 매개...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.