패스워드 정규식

패스워드 정규식

작성일 2023.12.18댓글 1건
    게시물 수정 , 삭제는 로그인 필요

숫자, 영문, 특수 문자 중 2가지 이상 포함하여 6자리를 만족하는 정규식을 알고 계신 분이 계실까요...

숫자,영문   or  
숫자, 특수 문자  or 
영문, 특수 문자  or 
숫자, 영문, 특수 문자 이렇게 정규식을 만들고 싶은데 너무 어렵네요...


#패스워드 정규식 #패스워드 특수문자 정규식 #java 패스워드 정규식 #자바 패스워드 정규식 #c# 패스워드 정규식 #jquery 패스워드 정규식

profile_image 익명 작성일 -

안녕하세요. 아이티윌 부산교육센터입니다.

말씀하신 각각의 요구사항을 적용하자면 다음과 같습니다.

숫자, 영문 : [A-Za-z0-9]

숫자, 특수문자 : [0-9원하는특수문자나열]

영문, 특수문자 : [A-Za-z원하는특수문자나열]

숫자, 영문, 특수문자 : [0-9A-Za-z원하는특수문자나열]

다만, 위의 세 가지 요소 중 2가지 이상 포함하여 6자리를 만족하도록 하려면 작업을 분리하셔야 합니다.

1. 전체 문자열에 대해 숫자, 영문, 특수문자 중 아무거나 포함된 6자리 만족

^[0-9A-Za-z원하는특수문자나열]{6}$

위의 표현식을 사용하여 조건을 검증한 후 해당될 경우 6자리를 만족한다고 판별하시면 됩니다.

2. 숫자, 영문, 특수문자 중 2가지 이상 포함

숫자, 영문 : [A-Za-z0-9]

숫자, 특수문자 : [0-9원하는특수문자나열]

영문, 특수문자 : [A-Za-z원하는특수문자나열]

숫자, 영문, 특수문자 : [0-9A-Za-z원하는특수문자나열]

위의 네 가지 표현식을 사용하여 각각의 조건을 검증한 후 해당될 경우 카운팅을 통해

카운트 변수값이 2 이상일 경우 2가지 이상 포함이라고 판별하시면 됩니다.

결국, 1번을 만족한 상태에서 2번 항목들을 각각 검증하여 카운팅하시고 2점 이상인지 판별하시면 됩니다.

자바 클래스로 작성한 대략적인 샘플 코드는 다음과 같습니다.

(자바스크립트의 경우 취급 방법이 조금 다릅니다)

public void checkRegex() { String data = "abc123"; String lengthRegex = "^[0-9A-Za-z!@#$%]$"; // java.util.regex.Pattern 클래스의 matches 메서드로 정규표현식 판별 if(Pattern.matches(lengthRegex, data)) { // 길이 만족할 경우 String numRegex = "[0-9]"; // [\d] 도 사용 가능 String engUpperRegex = "[A-Z]"; String engLowerRegex = "[a-z]"; String specRegex = "[!@#$%]"; // 원하는 특수문자 기입 int count = 0; // 카운팅 할 변수 선언 if(Pattern.matches(numRegex, data)) count++; // 숫자 포함 시 if(Pattern.matches(engUpperRegex, data)) count++; // 대문자 포함 시 if(Pattern.matches(engLowerRegex, data)) count++; // 소문자 포함 시 if(Pattern.matches(specRegex, data)) count++; // 특수문자 포함 시 switch (count) { case 4: System.out.println("복잡도 : 안전!"); break; case 3: System.out.println("복잡도 : 보통!"); break; case 2: System.out.println("복잡도 : 위험!"); break; default: System.out.println("숫자, 영문자, 특수문자 2가지 이상 조합 필수!"); } } }

추가적인 질문 사항은 댓글로 달아주시면 됩니다.

이상 아이티윌 부산교육센터였습니다.

감사합니다.

혹시 javaScript로 password 조건을...

... - 유효한 이메일인지 여부를 판단하는 정규식과 유효한 패스워드인지 여부를 판단하는 정규식을 추가했습니다. - 익명 체크를 하지 않았을...

msfconsole 질문

이거 왜 이러는거죠??? 패스워드파일을 unset 후 열어서 봐야 겠는데요. 텍스트 형식, 어떤 특수문자, 정규식으로 돼 있는 부분에서 문제가 있지 싶습니다.