2015년 12월 4일 금요일

패스워드 검증

2종류 10자 이상
3종류 8자 이상

  1. public static Map<String, Object> validatePassword(String passwd) {  
  2.     Map<String, Object> resultMap = new HashMap<String, Object>();  
  3.     boolean containNum = false;  
  4.     boolean containLowerAlpha = false;  
  5.     boolean containUpperAlpha = false;  
  6.     int containCnt = 0;  
  7.     String validNum = "0123456789";  
  8.     String validUpperAlpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";  
  9.     String validLowerAlpha = "abcdefghijklmnopqrstuvwxyz";  
  10.     Pattern p = Pattern.compile(".*[^a-zA-Z0-9].*");  
  11.     Matcher m = p.matcher(passwd);  
  12.     if(m.matches()) {  
  13.         containCnt++;  
  14.     }  
  15.     if(passwd.length() > 0) {  
  16.         for(int i = 0; i < passwd.length(); i++) {  
  17.             if((containNum == false || containLowerAlpha == false || containUpperAlpha == false)) {  
  18.                 if(containNum == false) {  
  19.                     if(validNum.indexOf(passwd.charAt(i)) != -1) {  
  20.                         containNum = true;  
  21.                         containCnt++;  
  22.                         continue;  
  23.                     }  
  24.                 }   
  25.                 if(containLowerAlpha == false) {  
  26.                     if(validLowerAlpha.indexOf(passwd.charAt(i)) != -1) {  
  27.                         containLowerAlpha = true;  
  28.                         containCnt++;  
  29.                         continue;  
  30.                     }  
  31.                 }  
  32.                 if(containUpperAlpha == false) {  
  33.                     if(validUpperAlpha.indexOf(passwd.charAt(i)) != -1) {  
  34.                         containUpperAlpha = true;  
  35.                         containCnt++;  
  36.                         continue;  
  37.                     }  
  38.                 }  
  39.             } else {  
  40.                 break;  
  41.             }  
  42.         }  
  43.         if((containCnt >= 3 && passwd.length() >= 8) || (containCnt == 2 && passwd.length() >= 10)) {  
  44.             resultMap.put("status"true);  
  45.         } else {  
  46.             resultMap.put("status"false);  
  47.             resultMap.put("result""사용 불가능한 비밀번호");  
  48.         }  
  49.     } else {  
  50.         resultMap.put("status"false);  
  51.         resultMap.put("result""패스워드 길이 오류");  
  52.     }   
  53.     return resultMap;  
  54. }  


  1. public static Map<String, Object> validatePassword(String passwd) {  
  2.     Map<String, Object> resultMap = new HashMap<String, Object>();  
  3.     int containCnt = 0;  
  4.     Pattern numP = Pattern.compile(".*[0-9].*");  
  5.     Pattern lowerAlphaP = Pattern.compile(".*[a-z].*");  
  6.     Pattern upperAlphaP = Pattern.compile(".*[A-Z].*");  
  7.     Pattern specialCharP = Pattern.compile(".*[^a-zA-Z0-9].*");  
  8.     Matcher m;  
  9.         m = numP.matcher(passwd);  
  10.     if(m.matches()) {  
  11.         containCnt++;  
  12.     }  
  13.     m = lowerAlphaP.matcher(passwd);  
  14.     if(m.matches()) {  
  15.         containCnt++;  
  16.     }  
  17.     m = upperAlphaP.matcher(passwd);  
  18.     if(m.matches()) {  
  19.         containCnt++;  
  20.     }  
  21.     m = specialCharP.matcher(passwd);  
  22.     if(m.matches()) {  
  23.         containCnt++;  
  24.     }  
  25.       
  26.     System.out.println(containCnt);  
  27.     if(passwd.length() > 0) {  
  28.         if((containCnt >= 3 && passwd.length() >= 8) || (containCnt == 2 && passwd.length() >= 10)) {  
  29.             resultMap.put("status"true);  
  30.         } else {  
  31.             resultMap.put("status"false);  
  32.             resultMap.put("result""사용 불가능한 비밀번호");  
  33.         }  
  34.     } else {  
  35.         resultMap.put("status"false);  
  36.         resultMap.put("result""패스워드 길이 오류");  
  37.     }   
  38.     return resultMap;  
  39. }  

[ 참고 - Pattern (Java Platform SE 7 b99) ]
https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

댓글 없음:

댓글 쓰기