본문 바로가기

IT/JQuery

[자바스크립트] 비밀번호 체계화

var userID = $("#USER_ID").val(); var prepassword = $("#PRE_PASSWORD").val(); var password = form.getFormValue("OF72120_detail", "PASSWORD"); var passwordchk = form.getFormValue("OF72120_detail", "PASSWORDCHK"); if(oUtil.isNull(password) || oUtil.isNull(passwordchk)){ return; }else{ if(password != passwordchk) { $.messager.alert("INFO", "");

return; } // 최소 10자리 이상 if(!password.length >= 10) { alert("비밀번호는 최소 10자리 이상이어야 합니다."); return false; } // 영문, 숫자, 특수문자 2종 이상 혼용 var chk = 0; if(password.search(/[0-9]/g) != -1 ) chk ++; if(password.search(/[a-z]/ig) != -1 ) chk ++; if(password.search(/[!@#$%^&*()?_~]/g) != -1 ) chk ++; if(chk < 2) { alert("비밀번호는 숫자, 영문, 특수문자를 두가지이상 혼용하여야 합니다."); return false; } // 동일 숫자 5자리 이상, 동일 문자 3자리 이상이면 안됨 var SamePass_0 = 0; //동일숫자 카운트 var SamePass_1 = 0; //동일문자 카운드 var chr_pass_0; var chr_pass_1; for(var i=0; i < password.length; i++) { chr_pass_0 = password.charAt(i); chr_pass_1 = password.charAt(i+1); if(!isNaN(chr_pass_0)){ //동일숫자 카운트 if(chr_pass_0 == chr_pass_1) { SamePass_0 = SamePass_0 + 1; } }else{ //동일문자 카운트 if(chr_pass_0 == chr_pass_1) { SamePass_1 = SamePass_1 + 1; } } } if(SamePass_0 >= 4) { alert("동일숫자를 연속으로 5번 이상 사용할 수 없습니다."); return false; } if(SamePass_1 >= 2) { alert("동일문자를 연속으로 3번 이상 사용할 수 없습니다."); return false; } // 사용자 계정과 동일한 암호는 사용할 수 없음 if(password.search(userID)>-1) { alert("ID가 포함된 비밀번호는 사용하실 수 없습니다."); return false; } // 직전 암호는 사용할 수 없음 if (prepassword == password) { alert("기존 비밀번호와 새 비밀번호가 일치합니다."); return false; } alert("비밀번호 유효성 검증에 성공하였습니다."); $("#PWD_SUC").val("S"); }