Programing/javascript

javascript 비밀번호 유효성 검사

2025. 4. 22. 09:19
반응형

연관글

    • 2025.04.22 - [Programing/PHP] - php 비밀번호 유효성 검사

 

회원가입 또는 비밀번호 변경 기능을 구현할 때, 사용자의 비밀번호가 보안 기준을 충족하는지를 확인하는 절차는 필수적입니다. 본 글에서는 JavaScript로 작성된 checkPasswordJson 함수의 구조와 검증 기준을 정리하고, 각 조건별 반환 메시지를 살펴봅니다.


✨ 함수 설명

function checkPasswordJson(password){
    const lengthValid = password.length >= 10 && password.length <= 30;
    const hasNumber = /[0-9]/.test(password);
    const hasLetter = /[a-zA-Z]/.test(password);
    const hasSpecial = /[!@#$%^&*()\-_=+\\|[\]{};:'",.<>/?`~]/.test(password);
    const hasWhitespace = /\s/.test(password);

    if (!lengthValid) {
        return {
            msg: "비밀번호는 영문, 숫자, 특수문자를 혼합하여 최소 10자리 ~ 최대 30자리 이내로 입력해주세요.",
            state: false
        };
    }

    if (hasWhitespace) {
        return {
            msg: "비밀번호는 공백 없이 입력해주세요.",
            state: false
        };
    }

    if (!(hasNumber && hasLetter && hasSpecial)) {
        return {
            msg: "영문, 숫자, 특수문자를 혼합하여 입력해주세요.",
            state: false
        };
    }

    return {
        msg: "",
        state: true
    };
}

✨ 검증 기준 요약

  • 길이 조건: 10자 이상 30자 이하
  • 필수 문자 구성:
    • 숫자 (0~9)
    • 영문자 (대소문자 포함)
    • 특수문자 (!@#$%... 등)
  • 금지 사항:
    • 공백 문자 포함 금지

✨ 검증 결과 예시

checkPasswordJson("Abc123!");
// 결과: { msg: "비밀번호는 영문, 숫자, 특수문자를 혼합하여 최소 10자리 ~ 최대 30자리 이내로 입력해주세요.", state: false }

checkPasswordJson("Abc1234567!");
// 결과: { msg: "", state: true }

checkPasswordJson("Abc1234567 !");
// 결과: { msg: "비밀번호는 공백 없이 입력해주세요.", state: false }

checkPasswordJson("abcdefghij");
// 결과: { msg: "영문, 숫자, 특수문자를 혼합하여 입력해주세요.", state: false }

✨ 활용 팁

  • 로그인이나 비밀번호 변경 시 UI와 함께 연동하여 사용자에게 즉각적인 피드백 제공 가능
  • 서버 측에서도 동일한 기준으로 검증 로직을 구성하면 보안 일관성을 유지할 수 있음
  • 특수문자 패턴은 서비스 특성에 따라 추가 또는 제한 가능

✨ 결론

checkPasswordJson 함수는 사용자에게 보다 안전하고 강력한 비밀번호를 요구하기 위한 유용한 프론트엔드 검증 도구입니다. 보안 기준을 코드화하여 사용자 실수를 줄이고, 전반적인 시스템 보안 수준을 높이는 데 기여할 수 있습니다.

 
반응형

'Programing > javascript' 카테고리의 다른 글

자바스크립트 this 키워드 제대로 이해하기 (함수 / 객체 / 클래스에서)  (0) 2025.04.23
자바스크립트 == vs === 비교 연산자의 차이와 올바른 사용법  (0) 2025.04.23
자바스크립트의 데이터 타입 완전 정복 (typeof, null, undefined)  (0) 2025.04.23
자바스크립트의 var, let, const 차이와 올바른 사용법  (0) 2025.04.23
javascript 이메일 유효성 검사  (0) 2025.04.22
국가별 여권번호 유효성 검사  (0) 2025.04.22
윤년 기준으로 날짜 선택 옵션을 자동 변경하는 함수  (0) 2025.04.22
생년월일 유효성 검사 함수  (0) 2025.04.22
'Programing/javascript' 카테고리의 다른 글
  • 자바스크립트의 데이터 타입 완전 정복 (typeof, null, undefined)
  • 자바스크립트의 var, let, const 차이와 올바른 사용법
  • javascript 이메일 유효성 검사
  • 국가별 여권번호 유효성 검사
Dongkkase
Dongkkase
개발자로 일하면서 부딪히는 문제풀이가 누군가에게 도움이 되길 바라며
    반응형
  • Dongkkase
    정집사의 개발로그
    Dongkkase
  • 전체
    오늘
    어제
    • All (478)
      • 금융 (61)
      • Programing (295)
        • Algorithm (39)
        • API (2)
        • javascript (122)
        • CSS (8)
        • HTML (10)
        • PHP (15)
        • JAVA (27)
        • JSP (17)
        • JSP 예제 (1)
        • IOS (1)
        • Android (1)
        • Sencha Touche (1)
        • bat file, cmd (0)
        • 디버깅 (2)
        • SQL (21)
        • MS-SQL (1)
        • MySQL (13)
        • 보안 (5)
      • Server (14)
        • Docker (1)
        • Windows (9)
        • Linux (3)
        • jeus (1)
      • Database (6)
      • IT 일반 (15)
      • 리뷰 (38)
        • Book (17)
        • 제품 (2)
        • 영화 소개 (11)
        • 음악 소개 (7)
      • 잡생각 (36)
        • 회고 (3)
        • 컬럼 (4)
        • 자료실 (6)
        • 낙서장 (12)
        • 위시리스트 (2)
        • WOW (1)
        • 덕 (1)
  • 인기 글

  • 최근 댓글

  • 태그

    디자인패턴
    It
    읽고 싶은 책
    php
    블로그
    JavaScript
    기초
    IT 관련
    위시리스트
    자바
    자바스크립트
    자바스크립트유틸
    IT·컴퓨터
    SQL
    사고 싶은 책
    iT's MY LiFE
    js패턴
    Java
    IT블로그
    jsp
Dongkkase
javascript 비밀번호 유효성 검사
상단으로

티스토리툴바