|
<script language="JavaScript"> /** * 비밀번호 보안등급 체크 * http://ysksoft.com */ function getPasswordLevel() { var elNewPasswd = document.getElementById('new_passwd'); var elPasswordLevel = document.getElementById('password_level'); var result_level = checkPassword.main(elNewPasswd.value);
var level_color = ''; var level_txt = ''; switch(result_level['code']) { case 1: level_color = '#00D200'; level_txt = '낮음'; break; case 2: level_color = '#FF7837'; level_txt = '보통'; break; case 3: level_color = '#FF0000'; level_txt = '높음'; break; case 1000: case 2000: case 3000: case 4000: elPasswordLevel.innerHTML = '<font color="red">'+result_level['msg']+'</font>'; return false; break; default: return false; break; }
elPasswordLevel.innerHTML = '보안등급 : <font color="'+level_color+'" style="font-weight:bold">'+level_txt+'</font>'; } var checkPassword = { aResultSecure : [], sPassword : '', sCheckRegexp1 : /^[a-zA-Z]/, sCheckRegexp2 : /[a-zA-Z0-9\~\!\@\$\^\*\(\)\_\+\{\}\[\]]/, sRegexp1 : /[a-z]/, sRegexp2 : /[A-Z]/, sRegexp3 : /[0-9]/, sRegexp4 : /[\~\!\@\$\^\*\(\)\_\+\{\}\[\]]/, main : function(sPassword) {
this.aResultSecure['code'] = 0; this.aResultSecure['msg'] = false; this.sPassword = sPassword; this.sResultRegexp = this.checkRegexp();
// 기본 검사 if(this.checkDefaultPassword()==true) {
// 낮은 단계 비밀번호 검사 // 문자그룹 중에서 2가지만 조합하여 8자리~9자리 // return 1 this.checkPasswordLevel1();
// 중간 단계 비밀번호 검사 // 문자그룹 중에서 2가지만 조합하여 10자리~13자리 // 문자그룹 중에서 영문대문자/영문소문자/숫자 조합하여 8자리 이상 // return 2 this.checkPasswordLevel2();
// 높은 단계 비밀번호 검사 // 문자그룹 중에서 2가지만 조합하여 14자리 이상 // 문자그룹 중에서 영문대문자/영문소문자/숫자 조합하여 9자리 이상 // 문자그룹 중에서 특수문자 포함 3가지 이상 조합하여 8자리 이상 // return 3 this.checkPasswordLevel3();
if(this.aResultSecure['code'] == 0) { this.aResultSecure['code'] = 1000; this.aResultSecure['msg'] = '영문+숫자, 혹은 영문+특수문자 등 비밀번호를 조합하여 입력해 주세요.'; } } return this.aResultSecure; }, checkRegexp : function() { var rStr = ''; if(this.sRegexp1.test(this.sPassword)) { rStr += '1'; } if(this.sRegexp2.test(this.sPassword)) { rStr += '2'; } if(this.sRegexp3.test(this.sPassword)) { rStr += '3'; } if(this.sRegexp4.test(this.sPassword)) { rStr += '4'; } return rStr; }, checkDefaultPassword : function() { if(this.sCheckRegexp1.test(this.sPassword)) { var sTemp = ''; for(var x=0; x<this.sPassword.length; x++) { sTemp = this.sPassword.substr((x*1),1); if(!this.sCheckRegexp2.test(sTemp)) { this.aResultSecure['code'] = 2000; this.aResultSecure['msg'] = '['+sTemp+']는 사용 불가능한 특수문자입니다.'; return false; } } } else { this.aResultSecure['code'] = 3000; this.aResultSecure['msg'] = '비밀번호의 첫 글자는 영문으로 시작해야 합니다.'; return false; } if(this.sPassword.length < 8) { this.aResultSecure['code'] = 4000; this.aResultSecure['msg'] = '비밀번호를 8자 이상 입력해 주세요.'; return false; } return true; }, checkPasswordLevel1 : function() { if(this.sPassword.length >= 8 && this.sPassword.length <= 9) { if(this.sResultRegexp.length==2) { this.aResultSecure['code'] = 1; } } }, checkPasswordLevel2 : function() { if(this.sPassword.length >= 10 && this.sPassword.length <= 13) { if(this.sResultRegexp.length==2) { this.aResultSecure['code'] = 2; } } if(this.sPassword.length >= 8) { if(this.sResultRegexp=='123') { this.aResultSecure['code'] = 2; } } }, checkPasswordLevel3 : function() { if(this.sPassword.length >= 14) { if(this.sResultRegexp.length==2) { this.aResultSecure['code'] = 3; } } if(this.sPassword.length >= 9) { if(this.sResultRegexp=='123') { this.aResultSecure['code'] = 3; } } if(this.sPassword.length >= 8) { if(this.sResultRegexp.length >= 2 && this.sResultRegexp.indexOf('4') > -1) { this.aResultSecure['code'] = 3; } } } } </script>
<input type="password" id="new_passwd" name="new_passwd" onkeyup="getPasswordLevel()" maxlength="16" size="30" /> <br> <div id="password_level"></div> |
0 개의 댓글:
댓글 쓰기